c语言程序改错,告诉我哪里有错,怎么改,谢谢啦

2024-12-26 19:37:58
推荐回答(3个)
回答1:

  1. int i,j后面加分号,应该是int i,j;    //语法错误

  2. for循环里面的i++改成i=i+2或i+=2。  //因为要求是从2的阶乘开始,基数阶乘不要,每次加2。

  3. return(t);改成return(s);    //因为主程序要收到的返回值是和,不是单独的阶乘数据。

  4. 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

回答2:

1、int i,j后面没有分号,应该是int i,j;
2、for语句中i++应该是i+=2
3、return (s)不是return (t)

回答3:

i每次都是增加2 的修改for循环for(i=2; i<=n; i=i+2 )