二分之根号五减一442 2023-09-28 10:48 采纳率: 90%
浏览 7
已结题

C语言函数调用中如何实现的循环?

#include <stdio.h>
char a[]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
void g(int n)//无返回值的函数
{
    if(n==1)
    {
        printf("%c",'A');
    }
    else
    {
        g(n-1);
        printf("%c",a[n-1]);
        g(n-1);
    }
}
int main ()
{
    int n;
    scanf("%d",&n);
    g(n);
    return 0;    
} 

这个代码的else语句里面的f(n-1)的意思是什么?有什么作用吗?这里每一行是怎么循环起来的?

  • 写回答

2条回答 默认 最新

  • threenewbee 2023-09-28 10:59
    关注

    这是递归调用,比如说 g(3)
    它会调用 g(2) c g(2)
    然后g(2)会调用 g(1) b g(1),所以是 g(1) b g(1) c g(1) b g(1)
    然后g(1)会输出 a,所以是 a b a c a b a

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

报告相同问题?

问题事件

  • 系统已结题 10月13日
  • 已采纳回答 10月5日
  • 修改了问题 9月28日
  • 创建了问题 9月28日

悬赏问题

  • ¥15 惠普360g9的最新bios
  • ¥15 配置hadoop时start-all.sh老是启动失败
  • ¥30 这个功能用什么软件发合适?
  • ¥60 微信小程序,取消订单,偶尔订单没有改变状态
  • ¥15 用pytorch实现PPO算法
  • ¥15 关于调制信号的星座图?
  • ¥30 前端传参时,后端接收不到参数
  • ¥15 这是有什么问题吗,我检查许可证了但是显示有呢
  • ¥15 机器学习预测遇到的目标函数问题
  • ¥15 Fluent,液体进入旋转区域体积分数不连续