有人请告诉我为什么我的代码给了我错误的答案。程序应该接受整数输入并给出相应的阶乘 #包括 整数阶乘_计算器(intn); void main() { int n; printf(“输入一个数字以获得其阶乘:”); scanf(“%d”和“&n”); printf(“%d的阶乘是%d\n”,n,阶乘_计算器(n)); }//端干管 整数阶乘运算器(整数n) { 整数阶乘; 整数; 对于(number=1;number
您不应有人请告诉我为什么我的代码给了我错误的答案。程序应该接受整数输入并给出相应的阶乘 #包括 整数阶乘_计算器(intn); void main() { int n; printf(“输入一个数字以获得其阶乘:”); scanf(“%d”和“&n”); printf(“%d的阶乘是%d\n”,n,阶乘_计算器(n)); }//端干管 整数阶乘运算器(整数n) { 整数阶乘; 整数; 对于(number=1;number,c,C,您不应在循环体中返回: #include<stdio.h> int factorial_calculator(int n); void main() { int n; printf("Enter a number to get its factorial: "); scanf("%d",&n); printf("The factorial of %d is %d\n",n,fac
在循环体中返回
:
#include<stdio.h>
int factorial_calculator(int n);
void main()
{
int n;
printf("Enter a number to get its factorial: ");
scanf("%d",&n);
printf("The factorial of %d is %d\n",n,factorial_calculator(n));
}//end main
int factorial_calculator(int n)
{
int factorial;
int number;
for(number=1;number<=n;number++)
{
factorial=factorial*number;
return factorial;
}
}//end factorial_Calculator
并对main
:int main(void)
使用正确的签名,而不是void main()
另外,由于scanf
可能会失败,因此初始化n
int factorial = 1;
并传递n
的绝对值,以避免输入负数时出现无限循环:
int n = 0;
此变量int factorial;未初始化。您正在for循环中返回factorial。因此它不是迭代的。请使用缩进正确格式化代码,并且没有多余的空行。它几乎无法读取。他也未初始化factorial。请将其添加到示例中
int factorial = 1;
int n = 0;
printf("The factorial of %d is %d\n",n,factorial_calculator(abs(n)));