C 奇数如何打印递增顺序? #包括 #包括 虚幻魔法(int-in); 整数偶数(整数n); int main() { 魔术(10); } 虚空魔法(int-in) { 如果(in==0) { 回来 } 如果(偶数) { printf(“%i\n”,in); } 魔术(in-1); 如果(!偶数(in)) { printf(“%i\n”,in); } 回来 } 整数偶数(整数n) { 返回(n%2)==0?1:0; }
奇数是如何按递增顺序打印的? 它打印的是108642135779。C 奇数如何打印递增顺序? #包括 #包括 虚幻魔法(int-in); 整数偶数(整数n); int main() { 魔术(10); } 虚空魔法(int-in) { 如果(in==0) { 回来 } 如果(偶数) { printf(“%i\n”,in); } 魔术(in-1); 如果(!偶数(in)) { printf(“%i\n”,in); } 回来 } 整数偶数(整数n) { 返回(n%2)==0?1:0; },c,C,奇数是如何按递增顺序打印的? 它打印的是108642135779。 我知道多达10 8 6 4 2,但它怎么会打印1 3 5 7 9?降序后?有嵌套调用Magic(在-1中)。如果数字为偶数,则立即打印,然后Magic(in-1)被调用。只有当n为零时,所有函数才会按相反顺序打印偶数。第一个奇数由最深的Magic()函数打印: #include <stdio.h> #include<string.h> void Magic(int in); int Even(int n
我知道多达10 8 6 4 2,但它怎么会打印1 3 5 7 9?降序后?有嵌套调用
Magic(在-1中)代码>。如果数字为偶数,则立即打印,然后Magic(in-1)代码>被调用。只有当n
为零时,所有函数才会按相反顺序打印偶数。第一个奇数由最深的Magic()
函数打印:
#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;
}
这是由函数的递归引起的。函数正在按调用顺序返回。如果你想在偶数之后按降序打印奇数,你需要将它们保存在一个变量(数组)中,该变量也会传递给魔法函数为什么在编辑之前发布了这个问题的答案,使问题变得正常?@MartinJames为什么要回滚到破坏版本?>@James Martini将您的编辑回滚到更合适的版本。所有这些都毫无意义。。我想我现在要喝醉了。如果我搞砸了,对不起——我只喝了半瓶斯托利酒
Magic(10)
|print 10
|Magic(9)
| |Magic(8)
| | print 8
| | ...
| | Magic(1)
| | Magic(0)
| | return;
| | print 1
| | return
| | ...
| | return
| |print 9
| |return
|return