为什么我的程序无法显示斐波那契数列?

时间:2018-10-18 16:13:24

标签: c++ while-loop logic fibonacci

我的程序无法显示斐波那契数列,但我认为代码正确,有人知道为什么吗?

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>

using namespace std;

int main()
{

  int a=0,b=1,c;
  cout << "Fibonacci number" << endl;
  cout << a << "      ";
  cout << b << "      ";
    while (c<100)
   {
     c=a+b;
     a=b;
     b=c;
   }
   cout << c << "      ";
   return 0;
}

1 个答案:

答案 0 :(得分:1)

您的代码中有两个错误,正如其他人的注释中所述。

首先,您尝试使用c而不进行初始化。请记住,在C ++中,当声明内置类型而不对其进行初始化时,它是“默认初始化的”。换句话说,如果您在函数(在这种情况下为main()函数)中声明内置类型的变量,则其值是不确定的。因此,您不能在为它分配值之前使用它来检查条件,而这正是while循环的作用。

第二,您只将c的最后一个计算值推入ostream。换句话说,您仅打印斐波那契数列的最后一个值。 尝试将cout << c语句放入循环中。

PS ::尽可能使用C++库的C版本(即<cstdio>代替<stdio.h>等)