C语言输出斐波那契数列前30项,我写的哪错了?

#include<stdio.h>main(){inta,b,i,c;a=0;b=1;c=1;for(i=1;i<=30;i++){printf("%d,",c);c=b... #include<stdio.h>
main()
{
int a,b,i,c;
a=0;
b=1;
c=1;
for(i=1;i<=30;i++)
{
printf("%d,",c);
c=b+a;
b=c;
a=b;
if(i%5==0)
putchar('\n');
}
}
出来的是1,1,2,4,8……
展开
 我来答
306712241
2012-03-22 · TA获得超过2512个赞
知道小有建树答主
回答量:890
采纳率:100%
帮助的人:263万
展开全部
你这写的是什么额? c=a+b, 然后c又赋给b, b又赋给a,相当于c赋给了a和b,直接就是c=2b,输出的全是偶数, 错误的地方就是 for循环里面语句的顺序,应该 先是a=b,b=c,c=a+b。你试试

printf("%d",c);
for (i=1;i<=30;i++)
{
printf("%d",c);
a=b;
b=c;
c=a+b;
}
松怀山f
2012-03-22 · TA获得超过395个赞
知道答主
回答量:54
采纳率:0%
帮助的人:30.4万
展开全部
你这里b=c这里b=2了,然后a=b,这个时候b又改变了,所以错了
追问
那应该怎么写?
追答
恩恩,调一下顺序就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhbzhbzhbbaby
2019-01-30
知道答主
回答量:3
采纳率:0%
帮助的人:2252
展开全部
long fibonacci1(int n)
{
long result;
long previous_result;
long next_older_result;
result=previous_result=1;
while(n>2)
{
n-=1;
next_older_result=previous_result;
previous_result=result;
result=previous_result+next_older_result;
}
return result;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
西蜀子云亭2
2012-03-22
知道答主
回答量:19
采纳率:0%
帮助的人:18.5万
展开全部
#include <stdio.h>
void main()
{
int i, s[30];

for(i=0;i<=30;i++)

{
if(i<2)
s[i]=1;
else s[i]=s[i-2]+s[i-1];
printf("%d ",s[i]);
}
printf("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
玉麒儿000
2012-03-22
知道答主
回答量:6
采纳率:0%
帮助的人:8794
展开全部
先给a赋值,a=b;再给b赋值,b=c;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式