인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

chobocorder님의 프로필 이미지
chobocorder

작성한 질문수

홍정모의 따라하며 배우는 C언어

6.17 for 루프를 배열과 함께 사용하기

배열을 안쓰고 예제문제를 구현해봤습니다. 이것과 관련해서 질문드립니다.

작성

·

280

0

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

 

 

#define SIZE 5

 

 int main()

{

int num = 0;

int sum = 0;

 

printf("Enter %d numbers :", SIZE);

 

for (int i = 0; i < SIZE; ++i)

{

scanf("%d ", &num);

sum += num;

}

 

printf("SUM = %d", sum);

 

return 0;

}

예제에서는 5개의 숫자를 입력받고 5개 숫자의 합을 출력하는 내용입니다.

 

코드만 보면 5개 입력 받고 숫자 5개의 합으로 넘어가야 할것 같은데

 

실행을 해보면 숫자 6개를 입력하고 나서야 숫자 5개의 합으로 넘어갑니다.

 

왜 이렇게 되는지 알 수 있을까요?

 

숫자 하나씩 입력하면서 띄어쓰기도 했습니다

답변 1

0

안녕하세요 :)

 

  scanf("%d ", &num);

 

에서 %d 다음에 띄어쓰기가 있네요 :)

 

  scanf("%d", &num);

 

이렇게 작성하셔야 합니다.

chobocorder님의 프로필 이미지
chobocorder
질문자

숫자를 입력하면서 띄어쓰기도 해줬는데도 안되는건가요? 왜그런건가요...

scanf("%c", &A); 와 scanf(" %c", &A); 는 차이가 있습니다.

 

참고할 수 있는 링크들을 첨부해드립니다.

 

[링크 1] Difference between scanf("%c", &c) and scanf(" %c", &c)

[링크 2] What is difference between scanf(" %c") and scanf("%c")?

[링크 3] What is the effect of trailing white space in a scanf() format string?

chobocorder님의 프로필 이미지
chobocorder

작성한 질문수

질문하기