把sum=sum+x;移到}后、x=1;前。
int main(void){
int sum,n,x,t;
scanf("%d",&n);
for(sum=0,x=t=1;t<=n;sum+=x*=t++);
printf("%d\n",sum);
return 0;
}
扩展资料:
C的数据类型包括:整型(short,int,long,long long)、字符型(char)、实型或浮点型(单精度float和双精度double)、枚举类型(enum)、数慎销组类型、结构体类型(struct)、共用体类型(union)、指针类型和空类型(void)。
变量是以某标识符为名字,其值可以改变的量。标识符是以字母或下划线开头的一串由字做宴母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元。纯孝银
参考资料来源:百度百科-c语言
int和long分配的内存空间长度不一样洞兄,表示的数值范围不一样腔帆。比如可能int有32位的空间,long有64位的空间。
n=17超出了整数的表伍颤雹示范围
把int改成float, 把%d换成%f,float比int算的数位多,更大的数用double和%lf
http://blog.csdn.net/xuexiacm/article/details/8122267
这里面扮戚粗有介绍int 和long型的数据表示范围,17的阶乘已经很大仔拦了,超过了他们的厅镇表示范围
sum
已经超出了32767,定义为无符号长整形。。