Turnin11111 2021-08-10 22:49 采纳率: 85.7%
浏览 51
已结题

请问这个求n的阶乘程序为什么会产生这种结果?

img
如图


#include <stdio.h>
void main() {
    int fac(int num);
    int n = 1;
    int num;
    for (num = 0; num <= 20; ++num) {
        printf("%d! = %d\n", num, fac(num));
    }
}
int fac(int num) {
    register int n = 1, i;     //寄存器变量
        for (i = 1; i < num; i++) {
            n = n * i;
        }
        return n;
}

  • 写回答

2条回答 默认 最新

  • bekote 2021-08-10 22:57
    关注

    fac里for循环应该是i<=num

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月18日
  • 已采纳回答 8月10日
  • 创建了问题 8月10日