c언어 질문드립니다.

조회수 313회

#include <stdio.h>

int main() {

    char ch[5];
    char tmp;

    for(int i=0;i<5;i++)
        scanf("%c",&ch[i]);

    for(int i=0;i<5;i++) {
        for(int j=5-i;j<5;j++) {
            printf("%c",ch[j]);
        }

        for(int k=0;k<5-i;k++) {
            printf("%c",ch[k]);
        }

        printf("\n");
    }
    return 0;
}

문자를 오른쪽으로 이동하는 right shift는 했지만 왼쪽으로 이동하는 left shift가 잘 안나옵니다. 도와주세요!

1 답변

  • 루프가 for(int i=0;i<5;i++) 조건을 통해 5번 실행 되면서 오른쪽으로 1칸씩 이동하며 출력하는 것으로 보입니다.
    해당 루프의 조건만 for(int i=5;i>0;i--)로 바꿔주시면 가능할 것 같습니다.
    조금만 더 설명해드리자면, 입력을 그대로 출력해주는 첫번째 줄을 출력하는 루프가 for(int k=0;k<5-i;k++)에서 for(int j=5-i;j<5;j++)로 바뀌고 나머지는 동일하게 순서만 바뀌어서 출력되게 됩니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)