不要用函数,如果用函数的话就得用指针来传参数。
#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 这句改成多少就可以了。
#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");
}
按楼主的意思,不改动框架,看看是不是想要的结果,希望对你有帮助。
这个题你的问题出在了你每次传递给fib函数的都是0和1,
提示,要改变first,second的值,传递时将他们的地址传给fib函数,
因此fib函数的形参要为两个指针变量,其他的你自己稍微修改下就差不多了