下面的程序是求n!,请改错: #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); }
时间: 2024-01-15 22:02:56 浏览: 244
c代码-n! = ?
代码中的函数定义缺少函数名,需要在函数定义前加上函数名 Factorial。同时,scanf函数需要传入n的地址,应该为&n。
修改后的代码如下:
```
#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);
}
}
int main() {
int n;
unsigned long x;
printf("Input n:\n");
scanf("%d", &n);
x = Factorial(n);
printf("%d!=%ld\n", n, x);
return 0;
}
```
阅读全文