Онлайн компилятор C

#include <stdio.h> int factorial(int n){ int result=1; for(int i=1;i<n;i++){ result*=i; } return result;} int main() { printf("%d", factorial(3)); return 0; }
这段代码定义了一个计算阶乘的函数,并在主函数中测试了factorial(3)的结果。目前程序输出是2,但3的阶乘应该是6。

- 你的for循环条件是i < n,当n=3时,循环只执行了i=1和i=2两次,漏掉了最后一次乘法。思考一下循环条件应该怎样写才能让i取到n的值。
- 注意阶乘的定义:n! = 1 × 2 × ... × n,你的循环从i=1开始,但需要确保乘到n本身。