2401_88084319 2024-12-12 13:43 采纳率: 80%
浏览 20
已结题

这个问题用c语言怎么解决

编写一个C语言程序,使用递归函数计算并输出一个非负整数的阶乘。要求:实现一个递归函数来计算阶乘。在主函数中调用该递归函数,并打印结果。 处理用户输入,确保输入为非负整数

  • 写回答

3条回答 默认 最新

  • 时光の尘 优质创作者: 嵌入式与硬件开发技术领域 2024-12-12 14:51
    关注
    
    #include <stdio.h>
    
    // 递归函数,用于计算阶乘
    int factorial(int n) {
        if (n == 0) {
            return 1;
        } else {
            return n * factorial(n - 1);
        }
    }
    
    int main() {
        int num;
        printf("请输入一个非负整数: ");
        while (1) {
            if (scanf("%d", &num) == 1 && num >= 0) {
                break;
            } else {
                // 处理输入错误的情况,清空输入缓冲区
                while (getchar()!= '\n') {
                    continue;
                }
                printf("输入有误,请重新输入一个非负整数: ");
            }
        }
    
        int result = factorial(num);
        printf("%d 的阶乘是: %d\n", num, result);
    
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月24日
  • 已采纳回答 12月16日
  • 创建了问题 12月12日