求帮助。。。。 怎么把下面的程序改成输出Fibonacci数列的前17项

2025-02-24 19:21:50
推荐回答(3个)
回答1:

不要用函数,如果用函数的话就得用指针来传参数。

#include

#define N    17

int main()
{
    int first = 0, second = 1;
    int ret, i;
    
    for(i=0; i    {
        if (0==i)
            ret = first;
        else if (1==i)
            ret = second;
        else
        {
            ret = first + second;
            first = second;
            second = ret;
        }
        
        printf("%3d ", ret);
    }
    
    printf("\n");
    
    return 0;
}

这样就可以了,想求多少项,就把 #define N  这句改成多少就可以了。

回答2:

#include 

int fib(int a,int b)

{

 int c;

 c=a+b;

 a=b;

 b=c;

 return c;

}

void main()

{

 int i,first=0,second=1;

 printf ("%3d%3d",first,second);

 for(i=1;i<=15;i++) 

 printf ("%3d",fib(first,second));

 printf("\n");

}

 按楼主的意思,不改动框架,看看是不是想要的结果,希望对你有帮助。

回答3:

这个题你的问题出在了你每次传递给fib函数的都是0和1,
提示,要改变first,second的值,传递时将他们的地址传给fib函数,
因此fib函数的形参要为两个指针变量,其他的你自己稍微修改下就差不多了