有人请告诉我为什么我的代码给了我错误的答案。程序应该接受整数输入并给出相应的阶乘 #包括 整数阶乘_计算器(intn); void main() { int n; printf(“输入一个数字以获得其阶乘:”); scanf(“%d”和“&n”); printf(“%d的阶乘是%d\n”,n,阶乘_计算器(n)); }//端干管 整数阶乘运算器(整数n) { 整数阶乘; 整数; 对于(number=1;number

有人请告诉我为什么我的代码给了我错误的答案。程序应该接受整数输入并给出相应的阶乘 #包括 整数阶乘_计算器(intn); void main() { int n; printf(“输入一个数字以获得其阶乘:”); scanf(“%d”和“&n”); printf(“%d的阶乘是%d\n”,n,阶乘_计算器(n)); }//端干管 整数阶乘运算器(整数n) { 整数阶乘; 整数; 对于(number=1;number,c,C,您不应在循环体中返回: #include<stdio.h> int factorial_calculator(int n); void main() { int n; printf("Enter a number to get its factorial: "); scanf("%d",&n); printf("The factorial of %d is %d\n",n,fac

您不应
在循环体中返回

#include<stdio.h>

int factorial_calculator(int n);

void main()
{
    int n;

    printf("Enter a number to get its factorial: ");
    scanf("%d",&n);
    printf("The factorial of %d is %d\n",n,factorial_calculator(n));
}//end main

int factorial_calculator(int n)
{
    int factorial;
    int number;

    for(number=1;number<=n;number++)
    {
        factorial=factorial*number;
        return factorial;
    }
}//end factorial_Calculator
并对
main
int main(void)
使用正确的签名,而不是
void main()

另外,由于
scanf
可能会失败,因此初始化
n

int factorial = 1;
并传递
n
的绝对值,以避免输入负数时出现无限循环:

int n = 0;

此变量int factorial;未初始化。您正在for循环中返回factorial。因此它不是迭代的。请使用缩进正确格式化代码,并且没有多余的空行。它几乎无法读取。他也未初始化factorial。请将其添加到示例中
int factorial = 1;
int n = 0;
printf("The factorial of %d is %d\n",n,factorial_calculator(abs(n)));