【请问这段代码哪里有问题呢?运行结果是错的,在这个基础上应该怎么修改呢?】
求分数序列前N项和
本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+... 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。
#include<stdio.h>
int main(){
int N,i;
double a,b=2.0,c=1.0;
scanf("%d",&N);
a=b/c;
for(i=1;i<N;i++){
c=b;
b=b+c;
a+=b/c;
}
printf("%.2f",a);
return 0;
}
c的值改变后,b=b+c=2b。不符合题意,应当多一个变量,去保持b的值不变并赋值给c
#include<stdio.h>
int main(){
int N,i;
double a,b=2.0,c=1.0,d;
scanf("%d",&N);
a=b/c;
for(i=1;i<N;i++)
{
d=b;
b=b+c;
c=d;
a+=b/c;
}
printf("%.2f",a);
return 0;
}