original:
#include<stdio.h>
int main(){
int a;
scanf("%d",&a);
int b,c,d;
d = a%10;
b = a/100;
c = a%100/10;
int a2 = d*100+c*10+b;
printf("%d",a2);
}
其实没有问题,就是没有站在计算机的角度思考问题,把问题复杂化了!
after:
#include<stdio.h>
int main(){
int a;
scanf("%d",&a);
printf("%d%d%d",a%10,a%100/10,a/100);//像计算机一样思考,位数的不同->输出顺序的不同
return 0;
}
另:考虑到反转后最高位可能为零
做法一:使用if语句;
做法二:先将反转后的数字储存到一个整型数里,通过输出的格式实现自动去零与否
int m = (n%10)*100+n/10%10*10+n/100;
printf("%3d",m)//最高位去零//3表示最多输出3位数
printf("%03d",m)//最高位保留0//03表示不足三位数时,数前补0