[求助]下面我的语法有错吗?
我是刚刚在学C的,书上有一个例子是由1-100的整数累加和,程序是这样
void main(void)
{
int i,sum=0;
for(i=1;i<=100;i++)
sum=sum+i;
printf("%d",sum);
}
最后得出的值是5050
在这个例子上面,我想,如果是做由1-1000的整数累加,那SUM的数据类型应该改为长整数long int,但为什么算出来的是负数?在这里我实在不明白。我把程式改成如下
void main(void)
{
int i;
long int sum=0;
for(i=1;i<=1000;i++)
sum=sum+i;
printf("%d",sum);
}
最后得出的值是-23788
为什么是负数呢?1-1000的累加不是500500吗?在这程序上,我那里出了问题???我是在Turbo c/c++ for Windows上面试的。