我写了一个程序来给出用户输入的数字的阶乘。它是一个赋值,它必须写入,以便第一个函数读入一个值,然后将其传递给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);
}
答案 0 :(得分:2)
您没有设置f
这应该可以解决您的问题:
int main()
{
int f = getValue();
factorial(f);
return(0);
}
我假设您的代码中有scanf
的拼写错误,因为它不会编译,但它应该是:
scanf("%d%*c", &n);
^