int i,j后面加分号,应该是int i,j; //语法错误
for循环里面的i++改成i=i+2或i+=2。 //因为要求是从2的阶乘开始,基数阶乘不要,每次加2。
return(t);改成return(s); //因为主程序要收到的返回值是和,不是单独的阶乘数据。
for循环里面的i初始值1可以改成初始值2。 // 不影响结果输出,但是对程序优化有好处。
完整的代码如下:
#include "stdio.h"
long sum(int n)
{
int i,j;
long t,s=0;
for(i=2;i<=n;i+=2)
{
t=1;
for(j=1;j<=i;j++)
t=t*j;
s+=t;
}
return(s);
}
void main()
{
printf("this sum=%ld\n",sum(14));
}
最终运行结果:
this sum=1761616746
1、int i,j后面没有分号,应该是int i,j;
2、for语句中i++应该是i+=2
3、return (s)不是return (t)
i每次都是增加2 的修改for循环for(i=2; i<=n; i=i+2 )