C언어 문제 질문

조회수 823회

임의의 문자를 입력받아 입력한 문자를 반복 출력하는 프로그램을 작성하시오. 단 (Q)를 입력하면 프로그램이 종료된다.

한 문자 입력 : A
입력한 문자: A

한 문자 입력 : d
입력한 문자: d

한 문자 입력 : Q

라는 문제인데요..

    char ch;

    while (ch != 'Q')
    {
        printf("한 문자 입력: ");
        scanf("%c", &ch);
        printf("입력한 문자: %c\n", ch);

    }
    return 0;
}

이건 제가 짠 코드인데 오류가 납니다. 도와주세요.

  • 에러 내용도 같이 올려주세요 김은기 2020.3.19 22:23

1 답변

  • #include <stdio.h>
    
    int main()
    
    {
    
        char ch = NULL; // 문자를 받을 변수 ch NULL 초기화
    
        while(1)
        {
            printf("한 문자 입력: ");
            ch = getchar();
            fflush(stdin); // 입력버퍼 비우기
            if(ch != 'Q') printf("입력한 문자 : %c \n\n",ch); // ch Q가 아니라면
            else break; // ch가 Q라면 반복문탈출
        }
        return 0;
    }
    

    질문자님이 주신 문제를 토대로 출력값이 제대로 나오도록 고려해서 코드를 재작성했습니다.

    그리고 질문자님이 올리신 코드에서 오류가 발생한 이유는 ch 라는 변수를 선언하고 정의를 하지않은상태 ( 즉 , 초기값을 주어지지않아 쓰레기값이 들어있는상태) 에서 while반복문에서 관계연산을 하게되니 , 오류가 발생한것 같습니다

    그래서 저의 코드에서는 ch 변수에 NULL 값을 넣어 초기화했습니다.

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

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

(ಠ_ಠ)
(ಠ‿ಠ)