你不应该在第11行使用n=n%10;比如你的n=1024,你这句话执行完之后就变成了n=4,你觉得这个结果符合你的预期吗?。
如果逆序输出是指321变成123的话,其实需要定义一个新的变量来保存最后的结果就行。给你写个参考,该方法目前有个漏洞就是100不会变成001,而是1。如果题目要求变成001的话,那么需要使用char数组来保存每一位的结果,自己想一下怎么解决把。
//输入n
int res=0;//保存最后的结果
int num;//保存每个位上面的数字
while(n>0){
num=n%10;
printf("num=%d ",num);//输出看下效果
res=res*10;
res+=num;
printf("res=%d ",res);
n=n/10;
printf("执行该循环之后n=%d\n",n);
}
printf("%d",n%10);
n=n/10;