注册 登录
编程论坛 C语言论坛

第一个分数分子2,分母1,下一个分数分子是前一个分子分母和,分母是前一个分数的分子,往后以此类推,前20个分数和是多少?求大佬写出考生作答处程序

摩托车诗人 发布于 2019-11-09 13:04, 2130 次点击
#include <stdio.h>
#define float double
void PRINT(double s)
{
  FILE *out;
  printf("s=%.5lf\n",s);
  if((out=fopen("result.dat","w+"))!=NULL)
  {
    fprintf(out,"s=%.5lf",s);
    fclose(out);
  }
}
void main()
{
/*考生在此设计程序*/
 
 PRINT(s);
}
7 回复
#2
纯蓝之刃2019-11-09 14:01
程序代码:
void main()
{
    unsigned int zi=1,mu=1;   //本分数的分子,分母
    unsigned int zi_tmp,mu_tmp;   //分子,分母的临时变量
    unsigned int n=20;          //计算的分数的个数
    unsigned int i=0;
    double s=0;

    for(i=0;i<n;i++)
    {
        zi_tmp=zi;          //zi_tmp,mu_tmp 得到前一个分数的分子分母值
        mu_tmp=mu;
        zi=zi_tmp+mu_tmp;   //计算本分数的分子分母值
        mu=zi_tmp;
        s=s+(double)zi/mu;          //求和
    }
    PRINT(s);
}
#3
摩托车诗人2019-11-09 15:35
回复 2楼 纯蓝之刃
大佬牛逼
#4
自学的数学2019-11-09 16:28
回复 2楼 纯蓝之刃
你的代码无法运行,试试这个:
程序代码:
#include "stdio.h"
void main()
{
float m,n,t,sum=0;
int i;
n=1.0;
m=2.0;
for(i=1;i<=20;i++)
{
sum+=m/n;
t=n+m;
n=m;
m=t;
}
printf("前20项和是%5.2f\n",sum);
}
#5
摩托车诗人2019-11-09 19:42
回复 4楼 自学的数学
谢谢大佬
#6
纯蓝之刃2019-11-09 20:06
回复 4楼 自学的数学
我的为什么运行不了。你的这个写的都不符合发帖人的题意。你的PRINT函数的调用呢。而且按理说分数的分子和分母应该是整形数的,而不是浮点数。
#7
自学的数学2019-11-09 20:25
连头文件都没有,咋运行?
#8
纯蓝之刃2019-11-09 20:52
回复 7楼 自学的数学
看清楚了,人家是让你在main函数里编写,没让你重新从头写一个程序。
void main()
{
/*考生在此设计程序*/
 
 PRINT(s);
}

把我的main放到他的题里怎么不能运行,你给答案是不读题的吗,人家要把s传递到到PRINT函数里输出出来,你都没有。
1