99的阶乘为什么会是0?问题出在哪

img


// 75.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
using namespace std;
//函数原型声明
int fact(int x);
int n, sn;

int main()
{
    for (int i = 1; i <= 3; i++)
    {
        cout << i << " n=";
        cin >> n;
        sn = fact(n);
        cout << n << "!=" << sn << endl;
    
    }

    

}
//以下是采用递归方法定义的fact()函数
int fact(int x)
{
    if (x == 0) return 1;
    return(x * fact(x - 1));//此处又调用了它自身
}


99的阶乘为什么会是0?问题出在哪

爆表了,超出数据表示范围了