求帮我看一下这一题用C语言

有一个分数序列:2/1,3/2,5/3,8/5,13/8,21/13,等等。求出这个数列的前n项和。
输入
输入有若干行,每行一个整数n(0<=n<=1000),表示数列的项数。n=0表示结束。
输出
每行对应输出前n项的和。结果保留2位小数。
样例输入
1
5
1
5
样例输出
2.00
8.39

供参考:

#include <stdio.h>
int main()
{
    int n, i, k, j, t;
    double s;
    while (scanf("%d", &n) == 1 && n != 0)
    {
        i = 1; k = 1; j = 2; s = 0;
        while (i <= n)
        {
            s += 1.0 * j / k;
            t = j + k;;
            k = j;
            j = t;
            i++;
        }
        printf("%.2f\n", s);
    }
    return 0;
}

#include <stdio.h>
 
int main()
{
    int a = 1;
    int b = 2;
    int n = 0;
    float sum = 0;
    int N;
    scanf("%d", &N);
    while (n < N)
    {
        sum += b / (float)a;
        printf("%d/%d", b, a);
        if (n != N-1) printf("+");
        n++;
        b = a + b;
        a = b - a;
 
    }
    printf("=%f\n", sum);
    return 0;
}