你那是求阶乘,不是求阶乘和
楼主,你的主程序错了,阶乘的定义是1*2*3.。。。。*20;你的算法就是错误的,还有就是数据类型你整错了,int类型只支持-32768—32767,所以你要用能存储更大数据的数据类型,参考一下我的这一段程序。
#include<stdio.h>
int main()
{
int tn,i;
unsigned long double a=1.0;
scanf("%d",&tn);
for(i=1;i<=tn;i++)
{
a=a*i;
}
printf("%lf\n",a);
return 0;
return 0;
}