[英]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.