5개의 정수를 입력받아 그수의 합을 구하는 프로그램인데요 정수는 반드시 1 이상이어야 한다네요.
그래서
#include <stdio.h>
int main(void)
{
int num=0;
int i=0;
int result=0;
while(i<5)
{
while(num<=0)
{
printf("0이상의 정수 입력 :");
scanf("%d", &num);
result+=num;
}
i++;
}
printf("덧셈 결과는 %d 입니다.", result);
return 0;
}
이렇게 입력했는데요, 이게 i 가 5를 만족하지않았으므로 다시 올라가서 반복되야하는데 결과가 입력한 값으로만나옵니다.0을 입력했을때 다시 입력하라는건 되는데.... 왜이러는 걸까요?
Hit : 11538 Date : 2015/01/24 05:59
wpfl0107
아 왜그런지 알았습니다 넘을 0으로 초기화하지 않아서 그런거군요.근데 답지보니까 #include <stdio.h>
int main(void)
{
int num=0;
int i=0;
int result=0;
while(i<5)
{
while(num<=0)
{
printf("0이상의 정수 입력 :");
scanf("%d", &num);
result+=num;
}
num=0;
i++;
}
printf("덧셈 결과는 %d 입니다.", result);
return 0;
}
i 에다가 1을 또 더하던데 왜그런건가요?
2015/01/24
skyclad1975
현재 첫 번째 while문이 계속 반복되는 조건으로 들어간 것이 i 라는 변수이고,
이 변수는 main에서 0으로 초기화되었습니다.
한 번 받아서 result에 더한 후, i에는 1을 더합니다.
또 한 번 받아서 result에 더한 후, i에는 1을 더합니다.
이런식으로 총 다섯 번을 반복하면 i는 5가 되므로 i<5 라는 조건을 만족하지 못하게 되어 while문을 빠져나오고, printf를 실행하게 되는 겁니다.