无法获得程序来计算数字的正确因子

时间:2013-04-16 18:16:01

标签: c function parameters parameter-passing

我写了一个程序来给出用户输入的数字的阶乘。它是一个赋值,它必须写入,以便第一个函数读入一个值,然后将其传递给main,然后main将其传递给第二个函数,该函数计算数字的阶乘,然后将其打印给用户。问题是它一直显示'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);
}

1 个答案:

答案 0 :(得分:2)

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

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

    return(0);
}

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

scanf("%d%*c", &n);
            ^