整数求逆

输入一个数要求逆序输出:这题和上一题的就一个数的位数有点相似,可以借鉴。

 #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

猜你喜欢

转载自blog.csdn.net/sun_fengjiao/article/details/86504369