gpt4 book ai didi

c - 奇数如何打印递增顺序?

转载 作者:行者123 更新时间:2023-11-30 21:17:52 24 4
gpt4 key购买 nike

#include <stdio.h>
#include<string.h>

void Magic(int in);
int Even(int n);

int main()
{
Magic(10);
}

void Magic(int in)
{
if(in == 0)
{
return;
}
if(Even(in))
{
printf("%i\n", in);
}

Magic(in - 1);

if(!Even(in))
{
printf("%i\n", in);
}
return;
}

int Even(int n)
{
return (n % 2) == 0 ? 1 : 0;
}

奇数如何按升序打印?它打印 10 8 6 4 2 1 3 5 7 9。我最多知道 10 8 6 4 2 但为什么它打印出 1 3 5 7 9?降序后?

最佳答案

存在嵌套调用Magic(in - 1);。如果数字是偶数,则立即打印,然后调用 Magic(in - 1); 。仅当 n 为零时,所有函数都以相反的顺序打印非偶数。第一个奇数由最深的 Magic() 函数打印:

Magic(10)
|print 10
|Magic(9)
| |Magic(8)
| | print 8
| | ...
| | Magic(1)
| | Magic(0)
| | return;
| | print 1
| | return
| | ...
| | return
| |print 9
| |return
|return

关于c - 奇数如何打印递增顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33713498/

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