c语言 用函数编写Fibonacci数列问题

题目是这样的下列这个程序是用函数的方式完成编写一个Fibonacci数列,请补充完成函数number_fibonacci()的代码。这个数列有如下特点:第1,2两个数为1... 题目是这样的
下列这个程序是用函数的方式完成编写一个Fibonacci数列, 请补充完成函数number_fibonacci( )的代码。
这个数列有如下特点:第1,2两个数为1,1。从第3个数开始,该数是其前面两个数之和。即:
F1=1 (n=1)
F2=1 (n=2)
Fn=Fn-1+Fn-2 (n>=3)
运行结果为:
1 1 2 3
5 8 13 21
34 55 89 144
233 377 610 987
1597 2584 4181 6765
. . . .
. . . .
我编写的程序是
#include<stdio.h>
int fib(int a);
main()
{
int n;
scanf("%d",&n);
fib(n);
}
int fib(int a)
{
int b[100];
int i;
b[0]=1;
b[1]=1;
for(i=2;i<=a-1;i++)
b[i]=b[i-1]+b[i-2];
for(i=0;i<=a;i++)
printf("%d\t",b[a]);
if((i%4)==0)
printf("\n");
return b[a];
}

看看这程序有啥问题 为啥是5个数一行
展开
 我来答
百度网友83cdc1c
推荐于2017-12-15 · TA获得超过5792个赞
知道大有可为答主
回答量:1907
采纳率:100%
帮助的人:850万
展开全部
#include<stdio.h>
int fib(int a);
main()
{
 int n;
 scanf("%d",&n);
 fib(n);
}
int fib(int a)
{
 int b[100];
 int i;
 b[0]=1;
 b[1]=1;
 for(i=2;i<=a-1;i++)
 b[i]=b[i-1]+b[i-2];
 for(i=0;i<a;i++)    //b[a]没有被赋值,不能输出它的值
 {
 printf("%d\t",b[i]);
 if((i%4)==3)    //每四个换行,应该是取余为3的时候打印换行符
  printf("\n");   //打印换行符应该在for循环里面
 }
 return b[a];
}
火舞蝶衣
2013-06-27 · TA获得超过3818个赞
知道小有建树答主
回答量:1521
采纳率:50%
帮助的人:507万
展开全部
for(i=0;i<=a;i++)
printf("%d\t",b[a]);
if((i%4)==0)
printf("\n");

你没有加括号,所以只在最后才会有可能输出回车符
因为\t的原因5个数就占了一行的位置,所以每5个数一行。
建议写成这样:
for(i=0;i<=a;i++){
printf("%d ",b[a]);
if((i%4)==0)
printf("\n");

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xx_lyq00
2013-06-27 · TA获得超过4140个赞
知道大有可为答主
回答量:1794
采纳率:84%
帮助的人:814万
展开全部
for(i=0;i<=a;i++)
printf("%d\t",b[a]);
if((i%4)==0)
printf("\n");

这里错了。
for(i=0;i<=a-1;i++) { //应该为a-1
printf("%d\t",b[i]);
if(((i+1)%4)==0) // 这里应该是 i=0~3 这才4个,输入一个回车。
printf("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式