22018, 1/1101 회원가입  로그인  
   wpfl0107
   C언어 중첩질문

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=33133 [복사]


저번에 질물안한것이있어 다시올립니다.궁금한건,

#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을 아예 빼버려야 됩니다.
2015/02/01