작성
·
235
1
int main()
{
int c = 0;
char z;
while (1)
{
printf("Enter the letter of your choice : \na. averngers b. beep\nc. count q. quit\n");
z = getchar();
if (z == 'a')
printf("Avengers assemble!\n");
else if (z == 'b')
printf("\a");
else if (z == 'c')
{
printf("Enter an integer : ");
scanf("%d", &c);
for (int i = 1; c >= i; ++i)
printf("%d\n", i);
}
else if (z == 'q')
break;
}
return 0;
}
왜 질문이 2번씩 나올까요
답변 1
1
안녕하세요, 질문&답변 도우미 Soobak 입니다.
작성하신 코드에서의 getchar()
함수 사용 부분 때문입니다.
사용자의 입력을 받을 때, Enter(개행 문자, '\n')
까지 입력을 받기 때문에, 사용자가 문자를 입력하고 엔터를 치면 두 개의 입력이 발생합니다.
첫 번째는 사용자가 입력한 문자이고, 두 번째는 엔터에 해당하는 개행 문자입니다.
따라서, 반복문이 두 번씩 실행되게 됩니다.
해당 강의의 scanf()
함수를 사용하는 부분, 혹은 while ((c = getchar()) != = '\n')
부분을 참고해보시면 더욱 도움이 되실 것 같습니다.