По какой-то причине мой оператор else if
не работает. Когда я запускаю код с вводом «20», я получаю выражение для факториала, затем «20», когда мой else if
оператор должен исправить это.Почему мое заявление «else if» не работает?
#include <iostream>
unsigned int factorial(unsigned int number);
int main()
{
unsigned int number;
std::cout << "Please enter a positive interger. ";
std::cin >> number;
std::cout << "facorial of " << number << " = " << factorial(number);
return 0;
}
unsigned int factorial(unsigned int number)
{
if (number > 1 && number < 20) {
return number * factorial(number - 1);
}
else if (number >= 20) {
std::cout << "error" << std::endl;
}
else
return 1;
}
Я не понимаю, о чем вы спрашиваете? В противном случае, если он ловит 20, должен возвращаться «ошибка». –