|
发表于 2019-9-7 11:55:57
|
显示全部楼层
- #include <stdio.h>
- dec_ror(int num , int w)
- {
- int a , b , c , d , e , r , u , v ;
- e = num ;
- for(r = 0 , d = num ; d > 0 ; d /= 10 , r ++) ;
- if(r > w) {
- for(u = 1 ; w > 0 ; w --) u *= 10 ;
- a = num / u ;
- b = num % u ;
- for(c = a , v = 1 ; c > 0 ; c /= 10) v *= 10 ;
- e = b * v + a ;
- }
- return e ;
- }
- dec_rol(int num , int w)
- {
- int a , b , c , d , e , r , u , v ;
- e = num ;
- for(r = 0 , d = num ; d > 0 ; d /= 10 , r ++) ;
- if(r > w) {
- w = r - w ;
- for(u = 1 ; w > 0 ; w --) u *= 10 ;
- a = num / u ;
- b = num % u ;
- for(c = a , v = 1 ; c > 0 ; c /= 10) v *= 10 ;
- e = b * v + a ;
- }
- return e ;
- }
- main(void)
- {
- int e , n , w , r , l ;
- n = 123456 ;
- for(w = 1 ; w < 6 ; w ++) {
- e = dec_ror(n , w) ;
- printf("\t\tn = %d , e = %d\n" , n , e) ;
- }
- printf("\n") ;
- for(w = 1 ; w < 6 ; w ++) {
- e = dec_rol(n , w) ;
- printf("\t\tn = %d , e = %d\n" , n , e) ;
- }
- printf("\n\n") ;
- printf("\t\t 请输入一个整数:") ;
- scanf("%d" , & n) ;
- printf("\t\t 请输入移动位数:") ;
- scanf("%d" , & w) ;
- r = dec_ror(n , w) ;
- l = dec_rol(n , w) ;
- printf("\n") ;
- printf("\t\t %d 右移 %d 位的结果:%d\n" , n , w , r) ;
- printf("\t\t %d 左移 %d 位的结果:%d\n" , n , w , l) ;
- printf("\n\n") ;
- }
复制代码 |
|