[求助]下面我的语法有错吗?
											我是刚刚在学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上面试的。



 
											





 
	    

 
	
