0

我编写了一个程序来对用户输入的数字进行阶乘。它是用于赋值的,必须写入,以便第一个函数读取一个值,然后将其传递给主函数,然后主函数将其传递给第二个函数,该函数计算数字的阶乘,然后将其打印给用户。问题是它一直显示“1”作为每个数字的阶乘。我究竟做错了什么?

#include <stdio.h>

int getValue()
{

    int n;

    printf("Enter number: ");
    scanf("%d%*c", &n);

    return(n);
}

int factorial(int n)
{

    int i, f;

    f=1;
    for(i=1; i<=n; i++)
    f=f*i;

    printf("The factorial is: %d", f);

    return(f);
}

int main()
{

    int f;

    getValue();
    factorial(f);

    return(0);
}
4

1 回答 1

2

您没有设置f这应该可以解决您的问题:

int main()
{
    int f = getValue();
    factorial(f);

    return(0);
}

我假设您在代码中有拼写错误,scanf因为否则它不会编译,但应该是:

scanf("%d%*c", &n);
            ^  
于 2013-04-16T18:18:13.430 回答