用函数的方法编写一个求级数前n项和的程序:S=1+(1+3)+(1+3+5)+…+(1+3+5+…

2025-03-11 13:51:15
推荐回答(2个)
回答1:

#include

//公式求和函数

int sumf(int n){

  int s=0,t=0;

  for(int i=1;i<=n;i++)

    {

        t=t+(2*i-1);

        s=s+t;

    }

    return s;

}

int main(void)

{

    int n,sum,k;

    int narray[100];//默认最多可输入100个数字吧;

    int sumarray[100];

    printf("please input number n:\n");

    scanf("%d",&n);

//开始计算并存入数组中;

    for(int z=0;z<=100;z++){

        if(n==0){k=z-1;break;}//输入0后按enter键跳出该循环即结束输入,转到输出结果for循环;

        narray[z]=n;

        sumarray[z]=sumf(narray[z]);

        scanf("%d",&n);

      }

      printf("the result is :\n");

//输出数组中所有已经结算的和;

      for(int h=0;h<=k;h++){

         printf("%d\n",sumarray[h]);

      }

    return 0;

}

回答2:

#include
int fun(int n); /*函数的声明(在main()函数后面定义的函数,一般要在调用他之前声明一下)*/
int main(void)
{ int n,s;
printf("n=");
scanf("%d",&n); /*输入项数n*/
s=fun(n); /*调用函数求和*/
printf("Sum=%d",s);
}
int fun(int n)
{ int i,a=0,s=0;
for(i=1;i<=n;i++)
{ a=a+i*2-1; /*用变量a来存放级数的第i项(A(i)=A(i-1)+i*2-1)*/
s=s+a; /*用s存放前i项的和*/
}
return s;
}