繁体   English   中英

C程序计算阶乘不工作

[英]c program to calculate factorial not working

嗨,我必须写这个程序来计算给定数字的阶乘。 第一个函数必须读入一个数字,然后将其传递给main函数,后者将该值传递给第二个函数,第二个函数计算该数字的阶乘,然后将该阶乘传递给main。然后,应从显示阶乘的main这是我写的,但无法正常工作:

    #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;

        return(f);
    }

    void printFactorial(int f)
    {

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

        return;
    }

    int main()
    {

        int f = getValue();
        factorial(f);
        printFactorial();

        return(0);
    }

您没有将计算出的阶乘值传递给printFactorial() 将该值传递给打印功能:

int main()
{

    int f = getValue();
    int fact = factorial(f);
    printFactorial(fact);
    return(0);
}

我认为您缺少printFactorial()的参数。

尝试这个:

printFactorial(factorial(f));

您没有将值传递给printFactorial()。 将值传递给打印函数:您可以将factorial(f)结果存储到某个变量中,然后存储paas,也可以将factorial(f)传递给打印函数

您将忽略factorial()的返回值,并且未将参数传递给printFactorial() 这些是最明显的问题。

另一个最微妙的问题是factorial()仅适用于较小的n值。 阶乘函数迅速增长,以至于您很快会遇到整数溢出。

int main()
{

    int f = getValue();
    factorial(f);
    printFactorial(f);
    getch();
    return(0);
}

暂无
暂无

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

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