您好我必须编写此程序来计算给定数字的阶乘。第一个函数必须读入一个数字,然后将其传递给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);
}
答案 0 :(得分:2)
您未将计算的因子值传递给printFactorial()
。将值传递给打印功能:
int main()
{
int f = getValue();
int fact = factorial(f);
printFactorial(fact);
return(0);
}
答案 1 :(得分:1)
我认为你缺少printFactorial()的参数。
试试这个:
printFactorial(factorial(f));
答案 2 :(得分:1)
您没有将值传递给printFactorial()。将值传递给打印功能: 您可以将factorial(f)结果存储到某个变量然后paas,或者您可以将factorial(f)传递给打印函数
答案 3 :(得分:0)
您忽略了factorial()
的返回值,并且未将参数传递给printFactorial()
。这些是最明显的问题。
另一个最微妙的问题是,factorial()
仅适用于n
的小值。阶乘函数增长如此之快,以至于您很快就会遇到整数溢出。
答案 4 :(得分:-1)
int main()
{
int f = getValue();
factorial(f);
printFactorial(f);
getch();
return(0);
}