c语言 递归
#include <stdio.h>void printN(int n);
void printN(int n)
{
if(n)
{
printN(n--);
printf("%d\n",n); //想用递归打印出1~10,这么些哪里错了呢
}
}
int main(void)
{
int n;
printf("请输入一个数字:");
scanf("%d",&n);
printN(n);
return 0;
} 本帖最后由 isdkz 于 2022-3-2 15:42 编辑
因为 n-- 是先使用再自减,也就是说你每次递归传入的都是 n,
应该把 n-- 改成 --n,还有你用 n 作为条件的话,只有 n 为 0 时才结束递归,
想从 1 开始的话,得把递归条件改成 n >= 2
void printN(int n);
void printN(int n)
{
if(n >= 2)
{
printN(--n); // 改这里
printf("%d\n",n); //想用递归打印出1~10,这么些哪里错了呢
}
}
int main(void)
{
int n;
printf("请输入一个数字:");
scanf("%d",&n);
printN(n);
return 0;
} isdkz 发表于 2022-3-2 15:37
因为 n-- 是先使用再自减,也就是说你每次递归传入的都是 n,
应该把 n-- 改成 --n,还有你用 n 作为条 ...
懂了懂了
页:
[1]