小甲鱼递归的一道课后题
本帖最后由 超凡天赐 于 2017-6-11 18:21 编辑#include <stdio.h>
void up_and_down(int n);
void up_and_down(int n)
{
printf("%d ", n);
if (n > 0)
{
up_and_down(--n);
}
printf("%d ", n);
}
int main(void)
{
int n;
printf("请输入一个整数:");
scanf("%d", &n);
up_and_down(n);
putchar('\n');
return 0;
}
比如输入5,为什么输出是这样的,不民白
请输入一个整数:5
5 4 3 2 1 0 0 0 1 2 3 4 Program ended with exit code: 9 @人造人 超凡天赐 发表于 2017-6-11 17:17
@人造人
代码不够哦 我来自问自答一下,刚刚突然想明白了。因为n已经自减了,归来的时候最后打印的肯定是4。{:10_250:} 人造人 发表于 2017-6-11 17:47
谢谢,不过这一题已经民白了{:10_250:}。 本帖最后由 超凡天赐 于 2017-6-11 18:21 编辑
#include <stdio.h>
void up_and_down(int n);
void up_and_down(int n)
{
printf("%d ", n);
if (n > 0)
{
up_and_down(n--);
}
printf("%d ", n);
}
int main(void)
{
int n;
printf("请输入一个整数:");
scanf("%d", &n);
up_and_down(n);
putchar('\n');
return 0;
}
这样会陷入死循环。{:10_247:} 超凡天赐 发表于 2017-6-11 17:54
谢谢,不过这一题已经民白了。
哦
页:
[1]