回复 楼主 冰莫辰
我来试给解解:从键盘任意输入一个3位整数,编程计算并输出它的逆序数(忽略整数前的正负号)。例如,输入-123,则忽略负号,由123分离出其百位1、十位2、个位3,然后计算3*100+2*10+1 = 321,并输出321。
1.读入一个三位数。(是否需要判断,必须三位数?)
2.判断是否负数,是则去负取正。
3.反位输出。
程序代码:
#include <stdio.h> int main(int argc, char **argv) { int x = 0; do { while (getchar() != '\n'){};//这里先清空输入缓存,解决如果字符输入会造成的程序错误 scanf("%d",&x);//确定清空后,接受输入 if (x>-1000 && x<-99){ //如果是3位的负数,则取正 x*=-1; } }while (x<100 || x>999);//结束条件为小于最少的3位数100或大于最大的3位数999 printf("%3d\n",x/100+x%100/10*10+x%10*100);//这里如果100,则只显示1,因为数001的整数输出为1 printf("%d%d%d",x%10,x%100/10,x/100);//这样则可以输出100的反序为001 return 0; }
当然,可能还有更好的方法,希望更多大神来指教。