有关c++斐波那契数列的一个问题

来源:百度知道 编辑:UC知道 时间:2024/05/25 06:52:51
题目是这样的:编程序求斐波那契数列的前四十个数,每行输出八个
我的程序:# include <iostream>
# include <iomanip>
using namespace std;
int main()
{ int c, count(0);
for(int a=0 ,b=1;count<38;c=a+b);cout<<c<<endl;
count++;
if (count==38)
{cout<<endl; count=0;}
return 0;
}
大家帮忙看看问题出在哪,谢谢
# include <iostream>
# include <iomanip>
using namespace std;
int main()
{
int s,count(0);
for(int s1=0,s2=1;count<=40;s=s1+s2)
{ cout<<s;
count++;
s1=s2;
s2=s;
if(count==8)
{cout<<endl; count=0;}
}
return 0;
}这个问什么也不对?

for(int a=0 ,b=1;count<38;c=a+b);cout<<c<<endl;
count++; /*for循环()后面别加分号,除非你不要循环体语句;for循环()中的语句第2个分号后的语句要等一次循环体运算结束后才能运行,也就是先输出了变量c的值后再使c=a+b;因为没有{},所以循环体只有1句cout<<c<<endl;这样就会进入死循环,而变量c第一次输出时没初值,所以第一次循环输出的c错误,语句中a,b的值没变过,所以c值一直不变。你这算法有问题*/
for(int a=1 ,b=1;count<20;count++;)
{
cout<<"a "<<a<<"b "<<b;
if(count%4==0)
cout<<endl;
a=a+b;
b=a+b;
}

if (count==38)
{cout<<endl; count=0;} /*本句意思就是count=38时就换行,这样控制每行8个目的根本就没达到,用上面的改法,这里可以删掉*/

我喜欢用C,用C给你个程序,你看看算法
#include<stdio.h>
int main()
{
int f1,f2;
f1=f2=1;
for(int i=1;i<=20;i++)
{
if(i%4==0)//每次输出2个数,所以每4次输出8个数就换行
printf("\n");
printf("%2d%2d",f1,f2);
f1=f1+f2;
f2=f1+f2;
}
return 0;
}

每行8个输出怎么没写程序呢,用if(count%7==0)cout<<endl;

程序中的变量没有声明,你只声明