인프런 커뮤니티 질문&답변
누적합 구하는데 질문이 있습니다.
작성
·
254
0
#include <stdio.h>
int main ()
{
int i,sum,a;
scanf("%d",&a);
for (i=1;i<=a;i++)
{
sum=sum+i;
}
printf("%d",sum);
return 0;
}
이렇게 코드작성을 했을때 10까지 더하면 1많은 56이 출력이 됩니다. 그런데 변수설정할때 int sum=0; 만 바꿔주어도 맞는 답이 출력이 됩니다.
int sum;
printf("%d",sum); 하면 0으로 잘 나오는데
sum=0; 설정을 안해주면 원래 답보다 1 많게 나오는 이유가 궁금합니다
답변 1
0
김태원
지식공유자
안녕하세요^^
답변이 늦어서 죄송합니다.
기본적으로 누적하는 변수는 0으로 초기화해야 합니다. 그렇지 않으면 컴퓨터에 따라 조금 다르지만 의미없는 값으로 초기화됩니다.





