mardi 21 février 2017

Why isn't my "else if" statement working

For some reason my "else if" statement is not working. When I run the code with the input "20", I get the expression for the factorial back then for "20", when my "else if" statement should correct for this.

Help is appreciated.

include

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;
}

Aucun commentaire:

Enregistrer un commentaire