#include stdio.h
创新互联公司专注于小店网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供小店营销型网站建设,小店网站制作、小店网页设计、小店网站官网定制、小程序开发服务,打造小店网络公司原创品牌,更为您提供小店网站排名全网营销落地服务。
int main()
{
int i,n;
int a1,b1,a2,b2,ai,bi;
float sum,t=1.0;
a1=2,b1=1;
a2=3,b2=2;
sum=t*a1/b1+t*a2/b2;
scanf("%d",n);
for(i=2;in;i++) //从第3项开始
{
ai=a1+a2;
bi=b1+b2;
sum+=t*ai/bi;
a1=a2,b1=b2;
a2=ai,b2=bi;
}
printf("前%d项和=%f\n",n,sum);
return 0;
}
示例运行结果:
2
前2项和=3.500000
3
前3项和=5.166667
10
前10项和=16.479906
经鉴定,LZ对于C语言中的数组/指针以及函数的相关知识点还没掌握好
这一题的正确思路应该是,设计一个函数int
feibo(int
n),该函数的作用是返回
斐波那契
数列第n项的值。主函数中获取用户输入的N,然后一个循环输出斐波那契的前N项
如果需要的话请追问,我可以根据我给你的思路提供相关代码供你参考
2/1+3/2+5/3+8/5+...这个数列每项的分子、分母分别是Fibonacci数列的后一项与前一项。求这一数列前N项的和可采取N由键盘输入,设一循环按Fibonacci数列规律求出分子与分母,将将分式转换为浮点除法求值累加获得最后结果。举例代码如下:
#include "stdio.h"
int main(int argc,char *argv[]){
int a,b,i,N;
double s;
printf("Input N(int 0N44)...\nN=");//大于43时int范围溢出
if(scanf("%d",N)!=1 || N1 || N43){//保证输入正确
printf("Input error, exit...\n");
return 0;
}
for(s=0.0,a=2,b=i=1;i=N;i++){//由此循环计算
s+=a/(b+0.0);//当前项累加给s
a+=b;//下一项的分子是当前项分子分母之和
b=a-b;//下一项分母是当前项分子
}
printf("The result are %.2f (when N=%d)\n",s,N);
return 0;
}
试运行结果如下图:
#includestdio.h
int
fun(int
n);
/*函数的声明(在main()函数后面定义的函数,一般要在调用他之前声明一下)*/
int
main(void)
{
int
n,s;
printf("n=");
scanf("%d",n);
/*输入项数n*/
s=fun(n);
/*调用函数求和*/
printf("Sum=%d",s);
}
int
fun(int
n)
{
int
i,a=0,s=0;
for(i=1;i=n;i++)
{
a=a+i*2-1;
/*用变量a来存放级数的第i项(A(i)=A(i-1)+i*2-1)*/
s=s+a;
/*用s存放前i项的和*/
}
return
s;
}