아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
지적인웜뱃3
지적인웜뱃320.10.19

[질문] 반복문 탈출 알려주세요!

#include <stdio.h>

#include <ctype.h>

int main(void)

{

int c, Q = 0;

while ((c = getchar()) != Q)

{

if (isupper(c))

c = tolower(c);

printf("%c", c);

}

return 0;

}

여기서 Q를 입력하면 탈출되게 하려는데 탈출되지 않습니다. 어떻게 수정해야할까요?

55글자 더 채워주세요.
답변의 개수
3개의 답변이 있어요!
  • #include <stdio.h> #include <ctype.h> int main(void) { //int c, Q = 0; //while ((c = getchar()) != Q) //변수 Q는 0으로 초기화된 변수이며 문자 'Q'가 아닙니다. //즉, 입력된 값을 변수 Q의 값인 0과 비교할 뿐입니다. //아래와 같이 수정하시면 됩니다. char c; while ((c = getchar()) != 'Q') { if (isupper(c)) c = tolower(c); printf("%c", c); } return 0; }


  • int main(void){int c, Q = 0;while ((c = getchar()) != Q) // 글자를 입력받고 입력된 글자 c 가 0 이 아니라면 반복문 실행{ if (isupper(c)) //c 변수가 대문자인가? 아니라면? c = tolower(c); // c 변수에 있는것을 소문자로 변경 printf("%c", c); //c변수에 있는것을 출력}

    위 주석을 보시면 알겠지만 while 문에서 Q 가 0 이 아니면 무조건 루프돌게 되어 있게 프로그래밍을 하셨습니다

    Q = 0 이 아니라 66 으로 변경해주세요

    asc 코드로 A 는 65 , B 는 66 , C 는 67 입니다


  • 아래 코드처럼 하면 될것 같습니다.

    #include <stdio.h> #include <ctype.h> int main(void) { int c; while ((c = getchar()) != 'Q') { if (isupper(c)) { c = tolower(c); } printf("%c", c); } return 0; }