gpt4 book ai didi

c - 我真的不明白我们是如何得到这些输出的

转载 作者:行者123 更新时间:2023-11-30 19:05:26 24 4
gpt4 key购买 nike

有人可以向我解释一下我们是如何得到这个输出的吗?

输出:

Q
B C D

这是我的代码:

#include <stdio.h>
char x = 'A';
void fun_1(int n) {
if(n>0) fun_1(n-3);
if(n == 0 ) printf("Q\n");
printf("%c ", ++x);
};

int main()
{
fun_1(6);
return 0;
}

最佳答案

你有一个递归函数,递归意味着在某个时刻它调用本身。终端情况(当函数停止调用自身时)是当 n == 0 时。

在处理递归函数时,你必须这样思考:

递归级别 0(第一次调用)

n == 6 ==> if(n>0) fun_1(n-3); is executed
  • 递归级别 1

    n == 3 ==> if(n>0) fun_1(n-3); is executed
    • 递归级别 2

      n == 0 ==>
      if(n == 0 ) printf("Q\n"); is executed, output is "Q\n"

      printf("%c ", ++x); is executed, x is now B, output is B

      这是最终情况,因此

    (返回)

    递归级别 1

    printf("%c ", ++x);  is executed, x is now C, output is C

(返回)

递归级别 0

printf("%c ", ++x);  is executed, x is now D, output is D

现在递归调用已经结束,您回到了main。如你看到的根据递归级别的分析,生成的输出为

Q
B C D

关于c - 我真的不明白我们是如何得到这些输出的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49832585/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com