在线编译器 C

#include <stdio.h> int factorial(int n) { int i, res = 1; for (i = 1; i <= n; i++) { res *= 1; } return res; }
这段代码定义了一个计算阶乘的函数 `factorial`,但它的计算结果总是返回1,因为循环内部每次乘的是常数1,而不是变量 `i`。

- 检查循环体中的乘法操作:`res *= 1` 这里乘的是固定值1,应该乘上循环变量 `i` 才能累乘出阶乘结果。
- 思考循环变量 `i` 的初始值和结束条件是否与阶乘的定义一致,例如计算 n! 需要从1乘到n。