{ long int s,t;
改
{ float s,t;
for(n=1;n<20;n++)
改
for(n=0;n<20;n++)
n < 20 改为 n <= 20
由于s是long类型,所以输出语句中输出格式应该是"%ld",而不是%e
此题的毛病在于标识行 /*************found**************/ 的位置有问题。
第一个错误 long s,t; d
原因:阶乘到后面是一个很大的数 所以要有一个比较大得类型
那么就是Long;
第二个错误是算法错误;
for(n=0;n<20;n++)
原因:如果不改那么S就是 从2开始加而不是从1开始;
所以你也可以这样改:
一开始 int s=1;
后面就是for(n=1;n<20;n++)
另一处:
for 语句中的n值应该从0开始,即for(n=0;n<20;n++),不应该从n=1开始;若从1开始的话,就没有1!这一项的啦。