kkjh8873   4년 전

숫자 N을 입력받아서 for문을원래

for (int i = 0; i <N; i++) 이렇게 돌렸더니 숫자 하나가 덜 더해지는거에요

그래서 for (int i = 0; i <=N; i++)로 바꾼거거든요


근데 이렇게하면 총 N+1번 for문이 돌아가는거아닌가요? 왜이렇게했을때만 처음부터 끝까지 숫자가 잘 더해지는걸까요 ㅠㅠ  

sgchoi5   4년 전

getchar() 는 cin 으로 N 을 얻어낸 다음에 남아있는 \n 문자를 처음에 읽게 됩니다. 그래서, 지금 구조로는 한 번 더 읽어야 겠네요.

atoi 가 0~9 가 아니면 무시하는 듯 합니다. API Reference 찾아보셔요..

%d 는 space 나 enter 까지를 하나의 int 형 변수에 받는 것은 아실텐데,

%1d 는 숫자 한 글자만 읽을 수 있으니,

scanf("%d", &N);

scanf("%1d", &int변수) 하시면 됩니다.


sgchoi5   4년 전

int temp;

scanf("%1d", &temp) ; 하시면 됩니다. (글자가 잘못 표현이 되네요..)

댓글을 작성하려면 로그인해야 합니다.