c语言好难帮助一下吧

img

#include "stdio.h"
void main()
{
    /*
    
    数列前20项的和
        2/1,3/2,5/3,8/5,13/8,21/13....
        
        a=1,b=2;
        a1=2,b1=3;
        
        a=a+a1=3;
        b=b+b1=5;
        
        --------------------------
        a1=2,b1=3;
        a =3,b =5;
        ---------
        a跟a1交换
        b跟b1交换
        a=2,b=3;
        a1=3,b1=5;
        
        
    */
    int i;
    double a,a1,b,b1,a2,b2,sum=0;
    //b/a,b1/a1
    a=1,b=2;    //第一项:2/1   a=1,b=2;
    a1=2;b1=3;  //第二项:3/2   a=2,b=3;
      
                //第三项:5/3   a1=3,b1=5;
                //第四项:8/5   a =5, b=8
    sum = b/a+b1/a1;//2项的值
    //从第3项开始计算
    for(i=2;i<20;i++)
    {
        a=a+a1;   //3
        b=b+b1;   //5
        sum+= b/a;
        printf("%0.0lf/%0.0lf+",b,a);
        a2=a; //a2是临时变量
        a=a1;
        a1=a2;

        b2=b; //b2是临时变量
        b=b1;
        b1=b2;
    }
      printf("=%0.2lf",sum);  
    
}

递归,问问题之前自己先想想吧

#include <stdio.h>

int main() {
    float sum=0;
    int a=1,b=1,t;    
    for(int i=1;i<=40;i++)
    {
        sum+=a*1.0/b;
        t=a;
        a=b;
        b=t+a;
    }

    printf("sum=%.4f\n",sum);
    return 0
}

#include <stdio.h>
void main(){
double a=1.0;
double b=1.0;
double c=0;
double sum=0;
for (int i=0;i<40;i++){
sum+=(a/b);
c=a;
a=b;
b=c+b;
}
printf("sum==%lf\n",sum);
}