#include <stdio.h>
int main(void)
{
int num=0;
int i=0;
int result=0;
while(i<5)
{
while(num<=0)
{
printf("0이상의 정수 입력 :", i+1);
scanf("%d", &num);
}
result+=num;
num=0;
i++;
}
printf("덧셈 결과는 %d 입니다.", result);
return 0;
}
저기 프린트함수뒤에 i+1 있죠?저거 없어도 되던데 왜 i+1을 붙이는건가요?
Hit : 10927 Date : 2015/01/28 02:32
skyclad1975
저 i+1은 원래 printf문 안에 정수형 포맷스트링인 %d가 들어있을 경우 거기에 해당 값을 대입하여 문자열로 나타내게 하는 역할을 하는 인자인데요, 저기에서는 지금 입력하고 있는 값이 몇 번째 값인지를 나타내기 위해서 출력하려고 했던 것으로 보입니다.
i가 반복문 내에서 0부터 4까지 진행되기 때문에 첫 번째 정수는 i번째라고 했을 경우 0번째가 되니 +1을 더 해준 거구요.
원래는 printf("%d번째 : 0이상의 정수 입력 :", i+1);
이 아닐까 합니다.
2015/01/28
김병권
일단 제 눈에 가장 먼저 들어오는 것이 printf함수의 잘못된 사용법이네요.
최소한 컴파일이 되려면 %d를 쓰거나 i+1을 아예 빼버려야 됩니다.