C语言,但不知道为撒没有报错,但就是运行不起来


#include
void main()
{
    double a=2,b=1,sum;
    int n,i;
    printf("Input n:  ");
    scanf("%d",&n);
    for(i=0;i<=n;n++)
    {
        b=a;
        a=a+b;
        
        sum=sum+a/b;
    }
    printf("%lf",sum);
}

入一个正整数n,输出2/1 + 3/2 + 5/3 + 8/5 + …的前n项之和,保留2位小数(该序列从第二项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子)。

【输入形式】

从键盘输入一个正整数n。

【输入输出样例1】(下划线部分表示输入)

Input n: 20

s=32.66

【样例说明】

输入提示符后要加一个空格。其中“:”后要加一个且只能一个空格。

输出语句的“=”两边无空格。

英文字母区分大小写。必须严格按样例输入输出。

修改如下,供参考:

#include<stdio.h>
void main()
{
    double a=2,b=1,sum=0;//修改
    int n,i;
    printf("Input n: ");
    scanf("%d",&n);
    for(i=0;i<n;i++) //for(i=0;i<=n;n++)
    {
        sum=sum+a/b; //修改
        a=a+b;       //修改
        b=a-b;       //修改
    }
    printf("s=%.2lf",sum);//printf("%lf",sum); 修改
}

sum没有给初值哦!定义的时候应该给个初始值零的!

第9行,应该是i++,而不是n++

错误点第九行应为i++;


#include<stdio.h>

void main() {
    double a = 2,b = 1, sum;
    int n;
    printf("Input n:  ");
    scanf("%d", &n);
    for (int i = 0; i <= n; i++) {
        b = a;
        a = a + b;
       sum = sum + a / b;
    }
    printf("%.2lf", sum);
}

#include <stdio.h>  
  
int main() {  
    int n, sum = 0;  
    printf("请输入一个正整数n:");  
    scanf("%d", &n);  
    for (int i = 1; i <= n; i++) {  
        int a = 2 * i + 1;  
        int b = 3 * i + 1;  
        int c = 5 * i + 1;  
        int d = 3 * i + 2;  
        int e = 5 * i + 2;  
        sum += a / (a + b + c + d + e);  
    }  
    printf("2/1 + 3/2 + 5/3 + 8/5 + ...的前%d项之和为:%.2lf\n", n, sum);  
    return 0;  
}
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^