• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

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

22.03.12 15:46 작성 조회수 198

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

강민철님의 프로필

강민철

2022.03.12

안녕하세요 :)

 

  scanf("%d ", &num);

 

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

 

  scanf("%d", &num);

 

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

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

강민철님의 프로필

강민철

2022.03.14

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?