繁体   English   中英

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

[英]cant get program to calculate correct factorial of a number

我编写了一个程序来给出用户输入的数字的阶乘。 它是一个赋值,它必须写入,以便第一个函数读入一个值,然后将其传递给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);
}

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

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

    return(0);
}

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM