#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
时间: 2024-03-18 17:44:25 浏览: 97
SeqList.h #include <stdio.h> //包含标准输入输出流的头文件 #include <assert.h
(int)(n-1); //递归调用时,应该将参数转换为int类型,否则会出现编译错误 } } int main() { int n; printf("Enter a positive integer: "); scanf("%d", &n); unsigned long result = Factorial(n); printf("%d! = %lu\n", n, result); return 0; }
以上是一段求阶乘的代码,但存在一些错误。其中函数声明与函数定义混淆,结尾不能加分号;函数定义中形参与实参类型不一致;判断条件错误,应该使用||而不是&&;递归调用时,应该将参数转换为int类型,否则会出现编译错误。
阅读全文