我的程序无法显示斐波那契数列,但我认为代码正确,有人知道为什么吗?
#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;
}
答案 0 :(得分:1)
您的代码中有两个错误,正如其他人的注释中所述。
首先,您尝试使用c
而不进行初始化。请记住,在C ++中,当声明内置类型而不对其进行初始化时,它是“默认初始化的”。换句话说,如果您在函数(在这种情况下为main()
函数)中声明内置类型的变量,则其值是不确定的。因此,您不能在为它分配值之前使用它来检查条件,而这正是while
循环的作用。
第二,您只将c
的最后一个计算值推入ostream。换句话说,您仅打印斐波那契数列的最后一个值。
尝试将cout << c
语句放入循环中。
PS ::尽可能使用C++
库的C
版本(即<cstdio>
代替<stdio.h>
等)