[질문] 반복문 탈출 알려주세요!
#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; }