【发布时间】:2019-11-17 08:16:53
【问题描述】:
我正在编写一个以递归方式打印出前 10 个自然数的程序。首先,我放了一个参数“--num”
int natural_numbers(int num) {
if (num > 1) // Base case
natural_numbers(--num);
printf("%d ", num);
}
Input: 10
Output: 1 1 2 3 4 5 6 7 8 9
然后我将参数更改为“num - 1”,它会打印出我的预期。
int natural_numbers(int num) {
if (num > 1) // Base case
natural_numbers(num - 1);
printf("%d ", num);
}
Input: 10
Output: 1 2 3 4 5 6 7 8 9 10
我不知道为什么第一个输出是错误的。我需要一些帮助。
【问题讨论】:
-
--num将num减 1,然后在下一行打印该数字。 -
这是C还是c++
-
杰克,你之前没有接受过其中一个答案吗(@Bartek,如果我没记错的话)?是什么让您改变主意重新提出这个问题?
标签: c++ c recursion operators parameter-passing