C语言编程:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。 50

#include<stdio.h>voidmain(){inti=1,j=2,s,u;floatsum;for(u=1;u<=20;u++){sum+=(float)(j... #include<stdio.h>
void main()
{
int i=1,j=2,s,u;
float sum;
for(u=1;u<=20;u++)
{
sum+=(float)(j)/i;
s=j;
j=j+i;
i=s;

}
printf("总和为%7.5f\n",sum);
}

代码都是正确的,请问哪里错了? 急救急救
展开
 我来答
问明6E
高粉答主

2019-06-15 · 每个回答都超有意思的
知道答主
回答量:279
采纳率:100%
帮助的人:12.9万
展开全部

#include<stdio.h>

/*

函数名:Gcd

参数列表:长整型数M,N(M>N)

函数功能:用欧几里得算法求最大公约数

返回值:M与N的最大公约数

*/

longGcd(longM,longN)

longRem;

while(N>0)

Rem=M%N;

M=N;

N=Rem;

returnM;

/*

函数名:fun

参数列表:单项分子a,单项分母b,最终分子alast,最终分母blast,项数n

函数功能,分数求和

返回值:无

*/

int fun(int*a,int*b,long*alast,long*blast,intn)

if(n==0)ﻩﻩﻩﻩﻩ//结束递归条件

return-1;

int i;

*alast=(*alast)*(*b)+(*blast)*(*a);

*blast=(*blast)*(*b);//对最终值进行约分

longfactor=Gcd(*alast,*blast);//最大公约数

*alast=*alast/factor;

*blast=*blast/factor;

printf("+%d/%d",*a,*b);ﻩﻩﻩ系

*b=*a-*b;

n--;

fun(a,b,alast,blast,n);//递归

return0;

intmain()

int n;

int a=3,b=2;

longalast=2,blast=1;

printf("Inputn=");ﻩﻩﻩﻩ//输入需要求的项数

scanf("%d",&n);

printf("2/1");

fun(&a,&b,&alast,&blast,n-1);

printf("=%ld/%ld\n",alast,blast);

return0;


扩展资料:

一、return在函数中的作用

我们如果将函数看做一个加工厂,参数就是我们向加工厂投入的原料,具体的函数功能实际上就是加工的过程,而return语句代表返回值,就是加工厂在实现加工之后给“投资人”的成品。

二、return语句的特点

1、在函数当中,遇到return语句之后就意味着函数运行的结束,在此之后的代码是不运行的。

2、它不支持任何运算也没有任何内建方法,和任何其他的数据类型比较是否相等时永远返回false,也可以将None赋值给任何变量。

3、执行到return语句时,会退出函数,return之后的语句不再执行。但将return语句放在try语句块中,是个例外。

三、return的默认值:return函数默认的返回值为undefined。

Passerby_路人
2008-01-07 · TA获得超过142个赞
知道答主
回答量:18
采纳率:0%
帮助的人:0
展开全部
观察分数序列,发现分子是2,3,5... 分母是,2,3,5...实际上都是斐波那契数列的一部份.
斐波那契数列指的是这样一个数列:1,1,2,3,5,8,13,21……这个数列从第三项开始,每一项都等于前两项之和。
所以只要给出两个初始值,后面的数字就可以用前面的数的和来表示.
这里用x表示分子,y表示分母.用for循环把分数序列前20项加起来.最后打印结果.
sum+=(float)(x)/y; 用了强制类型转换,因为两个int型的数相除,结果也会是int型.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gglddqccdc
2010-04-07 · TA获得超过4082个赞
知道小有建树答主
回答量:372
采纳率:100%
帮助的人:654万
展开全部
解:∵分数序列为2/1,3/2,5/3,8/5,13/8,21/13,……
∴令F(n)为斐波那契数列,有分数序列的通项公式为:a[n]=F(n+2)/F(n+1)
∵F(n)=(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}
∴a[n]={[(1+√5)/2]^(n+2) - [(1-√5)/2]^(n+2)}/{[(1+√5)/2]^(n+1) - [(1-√5)/2]^(n+1)}
按此公式编制一段1到20的循环小程序,即得到结果:32.6602607986416 【此为VB下运行的结果】
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xoaxa
2014-08-11 · TA获得超过8610个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3477万
展开全部

#include <stdio.h>
int main() {
int n,k,x0,x,y0,y,t;
while(scanf("%d",&n) == 1) {
x0 = 1,x = 1,y0 = 0,y = 1;
for(k = 1;k <= n;k++) {
t = x0;
x0 = x;
x = t + x0;
t = y0;
y0 = y;
y = t + y0;
printf("%d/%d ",x,y);
}
printf("\n");
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhangsonglin_c
高粉答主

2017-07-07 · 醉心答题,欢迎关注
知道大有可为答主
回答量:3.7万
采纳率:83%
帮助的人:6989万
展开全部
规律:
(1)正负相间;
(2)后一个数的分子,是前面一个数分子、分母数值之和,分母是前面一个数的分子;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(20)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式