C语言 为什么函数给出的ans为0

wyyhbhjk  于 2022-12-02  发布在  其他
关注(0)|答案(1)|浏览(231)
int get_fact(int N)
{
    int fact=1;
    while(N--)
       {

       fact=fact*N;

       }
    return fact;

}

为什么它给一个零??
尝试使用N的阶乘。在这里使用while循环。但不知何故0被乘。但为什么会发生这种情况?

64jmpszr

64jmpszr1#

while循环允许您重复执行代码,直到布尔值变为false(当条件变为0时)。

while (N--)

将继续执行,直到N的值等于0,此时条件变为false。任何数字乘以0都将得到0。这就是您的答案。
将其更改为:

int get_fact(int N)
{
    int fact = 1;
    while(N)
    {
       fact = fact * N;
       N--;
    }
    return fact;

}

关于C语言中前缀和后缀++的区别,请参见; https://www.eskimo.com/~scs/readings/autoincrement.990118.html

相关问题