我的阶乘函数不返回阶乘

mit*_*day 4 c return-value factorial function-call function-definition

我无法找出为什么我的函数仅返回用户输入而不是输入的阶乘。

#include <stdio.h>
#include <math.h>
int factorial(int x)
{
    //int x;
    int sum = 1;
    while (x!=0){
        sum = sum * x;
        x--;
    }
    return sum;
}

int main(){
    int x;
    printf("Enter value of x: ");
    scanf("%i",&x);
    factorial(x);
    printf("sum is %i", x);
    
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Chr*_*ris 6

您的factorial函数确实返回一个新值,但您实际上并没有使用该值。

printf("sum is %i\n", factorial(x));
Run Code Online (Sandbox Code Playgroud)


cha*_*eon 5

因为您正在打印x哪个是您存储用户输入的变量。您的factorial函数返回结果,但您没有保存它。