求分数序列前N项和(代码在这个基础上应该怎么修改呢?)

【请问这段代码哪里有问题呢?运行结果是错的,在这个基础上应该怎么修改呢?】

求分数序列前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;
}