我输入的查找阶乘的函数在输入大于12的值(用户输入)后返回错误的数字]]

问题描述 投票:0回答:1

我刚刚了解了整数溢出,但需要帮助修复它

int factorial()
{
    int answer = 1;
    int n;
    int factNum; 
    printf("Please enter a postive integer:\n");
    // user input is stored in factNum
    scanf("%i", &factNum); 

    for(n =1; n <= factNum;n++)
    {
        answer = answer * n;
    }
    return answer;
}

我刚刚了解了整数溢出,但是我需要帮助修复它int factorial(){int answer = 1; int n; int factNum; printf(“请输入一个正整数:\ n”); //用户输入为...

c function user-input factorial
1个回答
0
投票

int最多只能存储2^31 - 1个数字(尽管从技术上讲,这是实现定义的)。如果您希望数字最大为2^64(大致为21!),请将int answer = 1;更改为unsigned long long answer = 1;

© www.soinside.com 2019 - 2024. All rights reserved.