程序始终输出0

Program always outputs 0

本文关键字:输出 程序      更新时间:2023-10-16

所以我正在做一个项目,制作一个函数来获得fibonacci序列的第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;
}

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

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