C语言递归问题,为什么最后换行而最后一个数字却第一个输出?
#include<stdio.h>voidnum(intn){if(0<=n&&n<=9)printf("%d\n",n);else{printf("%d",n%10);...
#include<stdio.h>void num(int n){ if(0<=n&&n<=9) printf("%d\n",n); else { printf("%d",n%10); num(n/10); }}int main(void){ int n; printf("输入一个数:"); scanf("%d",&n); num(n); return 0;}
展开
1个回答
展开全部
#include<stdio.h>
void num(int n)
{
if(0<=n&&n<=9) //123456大于10,所以走到else, 最终当num(1)时走if里面
printf("%d\n",n);
else
{ printf("%d",n%10); //首先会输出123456%10=6,也就是先输出6
num(n/10); //再以12345调用num
}
}
int main(void)
{
int n;
printf("输入一个数:");
scanf("%d",&n);
num(n);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询