输入一个数要求逆序输出:这题和上一题的就一个数的位数有点相似,可以借鉴。
#include <stdio.h>
#include <stdlib.h>
//#include <time.h>
int main (void)
{
int x,digit,rev;
rev=0;
printf("输入一个数:\n");
scanf("%d",&x);
while(x>0)
{
digit=x%10;
rev=rev*10+digit;
x=x/10;
}
printf("这个数的逆序是%d",rev);
return 0;
}
思路:求一个数的逆序,先把各个位数上面的数字分别求出,digit=x%10,就是把个位上面的数字求出来,然后配合使用x=x/10。问题是把每一个位数上面的数求出来之后怎么运用,让这个数以逆序的方式重新组合呢?
rev=rev*10+digit。从这里可以看出,最后肯定是要加上最后面的个位上面的数字的,所以是加上digit,然后前面的是乘以10,因为是逆序,所以每除10,从后面逆回来的数就乘以10.
例子:
x digit rev
123 3 3
12 2 32
1 1 321