#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") ;
}