中国当代苦逼大学生一枚 2022-04-21 10:27 采纳率: 80%
浏览 375
已结题

请教一道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;
}

  • 写回答

2条回答 默认 最新

  • a5156520 2022-04-21 11:21
    关注

    一个实现,供参考:

    #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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月29日
  • 已采纳回答 4月21日
  • 修改了问题 4月21日
  • 创建了问题 4月21日

悬赏问题

  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?