菜鸟求助,关于循环语句,大神帮忙。。。
有一数列,求前20项之和,2/1 3/2 5/3 8/5 13/18 21/13.....
编写如下程序:
#include <stdio.h>
void main()
{
int i;
float sum,a,b,c;
sum=0;
a=2.0;
b=1.0;
while (i<=20)
{
sum=sum+c;
i++;
a=a+b;
b=a-b;
c=a/b;
}
printf("%10.6f\n",sum);
}
大神们帮忙看看错哪了,感激不尽。。。。。
[解决办法]
分子分母的变化规律,你没有抓住
while里面的循环体是错误的
你看下这个代码
#include <stdio.h>
void main()
{
int i=1,t;
float sum,a,b;
sum=0;
a=2.0;
b=1.0;
while (i<=20)
{
sum+=a/b;
t=a;
a=a+b;
b=t;
i++;
}
printf("%10.6f\n",sum);
}
希望你能明白t在里面的作用
[解决办法]
下面的代码执行结果:32.660263
- C/C++ code
#include <stdio.h>void main(){ int i = 1; // 1 float sum,a,b,c; sum=0; a=2.0; b=1.0; c = 2; // c = 2/1 while (i<=20) { sum=sum+c; i++; a=a+b; b=a-b; c=a/b; } printf("%10.6f\n",sum);}