Online Compiler C

#include <stdio.h> int factorial(int n) { int a = 1; for (int i = 1; i <= n; i++) { a *= i; } return a; }
这段代码定义了一个计算阶乘的函数 `factorial`。它使用循环从1乘到n,将结果累乘到变量 `a` 中,最后返回结果。函数逻辑基本正确,但有一个潜在问题需要注意。

- 当 `n` 为负数时,循环条件 `i <= n` 不会执行,函数会返回初始值1,但数学上负数的阶乘是未定义的。考虑是否需要处理这种情况。
- 当 `n` 较大时(比如超过12),`int` 类型可能溢出,因为阶乘增长很快。可以思考是否要使用更大的数据类型或添加检查。