上机运行以下程序,输入整数13
,输出结果是错误的,其原因是( )。
#include <stdio.h> /* 编译预处理命令 */
int main(void) /* 主函数 */
{
int n; /* 变量定义 */
int factorial(int n); /* 函数声明 */
scanf("%d", &n); /* 输入一个整数 */
printf("%d\n", factorial(n)); /* 调用函数计算阶乘 */
return 0;
}
int factorial(int n) /* 定义计算 n! 的函数 */
{
int i, fact = 1;
for(i = 1; i <= n; i++){
fact = fact * i;
}
return fact;
}
A.
运算结果超出了整数的取值范围
B.
for循环语句多执行了一次,计算结果是14的阶乘
C.
for循环语句少执行了一次,计算结果是12的阶乘
D.
printf函数中使用了错误的格式控制符