#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-18 15:02:20 浏览: 23
c代码-n! = ?
这段代码存在一个语法错误,函数头应该是 `unsigned long Factorial(unsigned int n)` 而不是 `unsigned long Factorial(unsigned int n);` ,因为分号会使得函数定义变成了函数声明。另外,`scanf("%d", n)`应该改为`scanf("%d", &n)`,因为`scanf`需要传入变量的地址。
阅读全文