题目要求:
改正下面代码中的错误。
题目代码:
#include <stdio.h>
unsigned long Factorial(unsigned int n);
{
if (n < 0)
{
printf("data error!");
return 0;
}
else if (n==0 && n==1)
{
return 1;
}
else
{
return n * Factorial(n-1);
}
}
main()
{
int n;
unsigned long x;
printf("Input n:\n");
scanf("%d", n);
x = Factorial(n);
printf("%d!=%ld\n", n, x);
}
正确代码:
#include <stdio.h>
unsigned long Factorial(int n) //函数声明与函数定义混淆:结尾不能加分号
//函数定义:形参与实参类型不一致
{
if (n < 0)
{
printf("data error!");
return 0;
}
else if (n==0 || n==1) //判断条件错误:应该使用||而不是&&
{
return 1;
}
else
{
return n * Factorial