c语言编程,有一数列,2/1,3/2,5/3,8/5,求出这个数列的前十项之和,这样做不行么?哪里

c语言编程,有一数列,2/1,3/2,5/3,8/5,求出这个数列的前十项之和,这样做不行么?哪里有问题

第1个回答  2014-05-07
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
void main(void){
int a,b,c,i;
double sum;
for(a=b=1,sum=i=0;i<10;i++){
c=a+b;
b=a;
a=c;
sum+=(c+0.0)/b;
}
printf("The result is %g\n",sum);
}本回答被网友采纳
第2个回答  2014-05-06
这样做是不行的 如果你学过数论和数值算法的话 你应当建立分数类 实现有分数类的加法

例如 1/2+1/4=3/4 最后将分数转为浮点数
第3个回答  2014-05-06
#include <stdio.h>
int main()
{
int i;
float y,c[10];
int a[11]={1};
y=0;
for(i=0;i<10;i++)
{
if(i==0)
a[i+1]=a[i]+a[i];
else
a[i+1]=a[i]+a[i-1];
}
for(i=0;i<10;i++)
{
c[i]=1.0*a[i+1]/a[i];
printf("%f\n",c[i]);//从这里可以看到每次相除后的值
y+=c[i];
}
printf("%f",y);
return 0;
}
没看到你说错误在哪里,这边验证这样写是ok!望采纳!
第4个回答  2014-05-06
第一个for循环应该是i小于11,而不是小于10。
第5个回答  2014-05-06
c[10]应是float
另外b[10]未初始化
相似回答