用c语言编程:求分数数列:2/1,3/2,5/3,8/5,13/8,....前二十项之和

我是一位c语言初学者,希望高手不吝赐教,多谢!

第1个回答  推荐于2018-04-13
#include<stdio.h>

main()
{
float a[21]={0},b[21]={0},sum=0;
int i;
a[0]=2;
b[0]=1;
for(i=0;i<=19;i++)
{
sum+=a[i]/b[i];
a[i+1]=b[i]+a[i];
b[i+1]=a[i];
}
printf("sum=%f\n",sum);
}本回答被提问者和网友采纳
第2个回答  2008-05-03
#include<stdio.h>
void main()
{

float a[21],b[20],a[0]=1,a[1]=2,sum;int i;
for(i=0;i<20;i++)
{
a[i]=a[i+2]-a[i+1];
b[i]=a[i+1]/a[i];
sum=sum+b[i];
}
printf("%d",sum);
}
第3个回答  2019-10-07
当定义为int形的变量的时候,a/b所得到的值是取整的,也就是说题目中的3/2被计算机取值为2了,为了防止这一机器错误,应该将a,b,c,s都定义为float形变量。
运行++n过后++n的值等于原来的n+1,n的值等于原来的n+1,运行n++过后,n++等于原来的n,n等于原来的n+1,具体到这里,是不会影响这个程序的运算结果的。
最后,语句中的s=s+a/b可以简写为s+=a/b,虽然在这道题里面用处不大,但是楼主以后会发现第二个语句的优势的。
相似回答