请问我这还有什么问题

#include
int main(){
int n;
scanf("%d",&n);
int a1,a2;
while(n>0)
{
if(n=1,2){
printf("1\n");}else{
printf("%d+%d\n",a1+a2);
}}
return 0;
}
任务描述:
Fibonacci(斐波那契)数列指的是这样一个数列:1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,17711,28657,46368... ...
这个数列前2项是1,从第3项开始,每一项都等于前两项之和。

Fibonacci数列的递推公式为:
3333333333.png

编程读入整数n(1<=n<=40),输出Fibonacci数列的前n项

#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
int a1=0,a2=1,a3 = 1,i=1;
while(i<n)
{
   if(i==1)
        printf("1\n");
    else
    {
            printf("%d+%d=%d\n",a1,a2,a1+a2);
            a3 = a1+a2;
            a1 = a2; 
            a2 = a3;
     }
      i++;
}
return 0;
}

第二个printf中写一个%d就行

仅供参考,若还不懂再问

#include<stdio.h>
int main(){
    int n,i;
    scanf("%d",&n);
    int a[41]={0,1,1};
    for(i=3;i<=n;i++)
    {
        a[i]=a[i-1]+a[i-2];
    }
    for(i=1;i<=n;i++)
    {
        if(i==n) printf("%d",a[i]);
        else     printf("%d,",a[i]);
    }
    return 0;
}