程序始终输出0

时间:2015-03-31 00:05:50

标签: c++

所以我正在制作一个项目,该函数可以获得第n个斐波纳契数列的函数。我不认为有任何错误,但我对结果不满意,我无法解决。

错误: - 当您输入数字时,控制台返回0

#include <cmath>

 using namespace std;

 int input(string msg)
 {
  int number = 0;
  while(number >= 0)
  {
  cin >> number;
  return 0;
  }
  return 0;
 }

int fib(int n)
{
     if ( n == 0 ) return 0;
     if ( n == 1 ) return 1;

     return fib(n-1) + fib(n-2);
}

int main()
{

 int fibonacci = input("Input a position");

 int fibber = fib(fibonacci);

 cout << fibber;


 return 0;
}

1 个答案:

答案 0 :(得分:3)

您的input函数返回零。您想要返回number。同时循环应该运行,直到输入的数字大于零(我认为这是你的意图)。

int input(string msg)
{
    int number = 0;
    while(number <= 0)
    {
        cout <<  msg;
        cin >> number;
    }
   return number;
}