请教一道C语言的数列求和题

函数fun是根据输入n,求数列s=1/2- (1/2) * (3/4)+(1/2) * (3/4) * (5/6)-(1/2) * (3/4) * (5/6) * (7/8)+. . . 前n项的和 ,
例如输入10 ,结果输出为0.206936。要求在/Begin/与/End/之间编写程序,其它部分不得增删语句。

#include<stdio.h>
#include<stdlib.h>
double fun(int n)
{
/Begin/

/End/
}
int main()
{
int n;
double s;
FILE *in,*out;
printf("输入n:");
scanf("%d",&n);
s=fun(n);
printf("%lf\n",s)
in=fopen("in2019-2-3-2.dat","r");
out=fopen("out2019-2-3-2.dat","w");
while(!feof(in))
{
fscanf(in,"%d",&n);
fprintf(out,"%lf\n",fun(n));
}
fclose(in);
fclose(out);
system("pause");
return 0;
}

一个实现,供参考:

#include<stdio.h>
#include<stdlib.h>
double fun(int n)
{
    double sum=0; //数列和 
    int i,j,k;
    int flag=-1;  //符号位 
    double single=1;  //每项数列的乘积 
    for(i=1;i<=n;i++){  //计算从1到n的数列和 
        flag*=-1;  //符号位运算 
        
        
        for(j=1,k=1;j<=i;k+=2,j++){  //计算每项数列的乘积 
            single*=(double)k/(k+1);  
            //printf("single=%lf,i=%d,j=%d,k=%d\n",single,i,j,k);
        }
        single*=flag;  //每项数列乘积乘上符号位 
        //printf("single=%lf,i=%d\n",single,i);
        
        sum+=single;//累加每项数列的乘积到和中 
        single=1;  //每项数列的乘积置为1 
    } 
    
    return sum;
}
int main()
{
    int n;
    double s;
    FILE *in,*out;
    printf("输入n:");
    scanf("%d",&n);
    s=fun(n);
    printf("%lf\n",s);
    in=fopen("f:\\in2019-2-3-2.dat","r");
    out=fopen("f:\\out2019-2-3-2.dat","w");
    while(!feof(in))
    {
        fscanf(in,"%d",&n);
        fprintf(out,"%lf\n",fun(n));
    }
    fclose(in);
    fclose(out);
    system("pause");
    return 0;
}

#include<stdio.h>
void sum(int n){
float s=0;
int j = -1;
float item = 1;
for (int i = 2,k=0; i <= n; i += 2,k++)
{
j *= -1;
item *= (i - 1.0) / i;
s = s + item * j;
}
printf("%f", s);
}
int main() {
sum(10);
}