菜鸟问一个关于数据类型问题
#include<stdio.h>
main()
{
int i,sum,s1,d;
scanf("%ld",d);
sum=0; 输入给d的值为20,但结果为什么和下面的不一样.
s1=1;
for(i=1;i<=d;i++)
{
s1=s1*i;
sum=sum+s1;
}
printf("The sum is %ld\n",sum);
}
#include<stdio.h>
main()
{
int i,s1=1,sum=0;
for(i=1;i<=20;i++)
{
s1*=i;
sum+=s1;
}
printf("%ld",sum);
}
请问这是不是因为数据类型的错误?还是其他的错误,我确实找不出错误,请指教.