中国当代苦逼大学生一枚 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 基于单片机的靶位控制系统
  • ¥15 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错