请问,我现在这个程序,当n=1就求了前三项的和,那我要求前n项的和该怎么办?

img


/*编写函数fun,其功能是求下面分数数列的前n项的和, ,
输入项数n得到前n项和s。如输入n=10,s=0.574793,注意:不要修改main函数的结构,只在fun函数的注释语句之间编写程序代码。
*/
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
double fun(int n)
{
/*Begin/
int i;
double s=1.0
for(i=1;i<=n;i++)
{
int a1=1,a2=1;
a1=a1+a2;
a2=a1+a2;
double m=-1.0/(sqrt(a1));
double p=1.0/(sqrt(a2));
double s;
s+=(m+p);
}

/***********End**********/

}
int main()
{
int n,i;
double s;
FILE in,out;
scanf("%d",&n);
s=fun(n);
printf("s=%lf\n",s);
/
*****************/
in=fopen("in82.dat","r");
out=fopen("out82.dat","w");
while(!feof(in))
{
fscanf(in,"%d\n",&n);
s=fun(n);
fprintf(out,"%lf\n",s);
}
fclose(in);
fclose(out);
system("pause");
return 0;
}

s的初值可赋为0,i 从 1 到 n 循环,恰好加数就是 1 / 根号i,而正负号可以通过 i 的奇偶性判断,偶数就添个负号