C语言编程问题:求 1!+2!+3!+...+n!

2024-11-14 16:36:55
推荐回答(5个)
回答1:

把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语言

回答2:

int和long分配的内存空间长度不一样洞兄,表示的数值范围不一样腔帆。比如可能int有32位的空间,long有64位的空间。
n=17超出了整数的表伍颤雹示范围

回答3:

把int改成float, 把%d换成%f,float比int算的数位多,更大的数用double和%lf

回答4:

http://blog.csdn.net/xuexiacm/article/details/8122267
这里面扮戚粗有介绍int 和long型的数据表示范围,17的阶乘已经很大仔拦了,超过了他们的厅镇表示范围

回答5:

sum
已经超出了32767,定义为无符号长整形。。