질문
#include<stdio.h>
int main(void)
{
int answer = 0;
int input = 0;
printf("UP and DOWN 게임입니다. 숫자 A를 지정하세요.\n");
scanf("%d",&answer);
printf("A가 지정되었습니다. 정답을 맞추어 보세요.\n");
printf("(정답이 보여도 모른척 하세요.. 아직 거기까지는 할 줄 모르니까요.)\n");
scanf("%d",&input);
while(input!=answer)
{
if(input>answer)
printf("Down!\n");
else if(input<answer)
printf("Up!\n");
else
printf("정답!");
scanf("%d",&input);
}
printf("정답!");
return 0;
}
제가 재미로 만들어본 소스인데요..
문제없이 잘 작동되긴 합니다.
그런데 저기 while문 다음에 정답!을 출력하도록한 문장이 A값을 한번에 맞추었을때 정답!을 출력하기 위해서 while 바깥에다가 써준건데요...
제가 만들어놓고 생각해보니 한 번에 정답을 맞추는 경우가 아니라면.. 와일문 안에 있는 마지막else의 출력문인 정답!을 출력하고 while문의 반복은 끝나게 되겠죠.
근데 그러고나면 와일문 바깥에 있는 정답!이 또 출력이 되어야 하는게 맞지 않나요??
그런데 정답!은 한 번만 출력이 된다는 말이지요..
왜 그럴까요..??
------------------------------------------------
안녕하세요. 강의스토리입니다.
답변
#include<stdio.h>
int main(void)
{
int answer = 0;
int input = -1;
printf("UP and DOWN 게임입니다. 숫자 A를 지정하세요.\n");
scanf("%d",&answer);
printf("A가 지정되었습니다. 정답을 맞추어 보세요.\n");
printf("(정답이 보여도 모른척 하세요.. 아직 거기까지는 할 줄 모르니까요.)\n");
while(input!=answer)
{
printf("예상되는 값 입력 : ");
scanf("%d",&input);
if(input>answer)
printf("Down!\n");
else if(input<answer)
printf("Up!\n");
else
printf("정답!");
}
return 0;
}
질문하신 내용을 제가 잘 이해했는지는 모르지만
scanf()를 한번 더 진행한 것 때문에 문제가 되었던 걸 말씀하신 것 같네요.
코드를 수정해 보았으니 참고하시길 바랍니다.
'edu-스토리' 카테고리의 다른 글
자바 jsp 강좌 - NoClassDefFoundError (0) | 2017.01.25 |
---|---|
CCNA 자격증 문제 풀이 - 네트워크 (0) | 2017.01.24 |
LPIC자격증 시험범위( LPI Level1 Exam 101, 102) (0) | 2017.01.23 |
C언어 예제 풀기와 답 (0) | 2016.10.31 |
C언어 정답확인 하기 (0) | 2016.10.31 |