c语言中循环右移怎么实现?程序应该怎么写

c语言中循环右移怎么实现?程序应该怎么写,第1张

unsigned char crol(unsigned char c,unsigned b)

{ //左租腊慧移

unsigned char leftleft=c<<局游b

unsigned char rightright=c>>( sizeof (unsigned char )-b)

return left|right

}

unsigned char cror(unsigned char c,unsigned b)

{ //右弊答移

unsigned char right

right =c>>b

unsigned char left

left=c<<( sizeof (unsigned char )-b)

return left|right

}

#include<stdio.h>

#define N 1000

void reverser(int *a,int n,int m)

{

int i,k=0,t

k=n%m

  for(i=0i<=(m-1)/2i++)//将桐羡数字换为原来整数的形式

{

t=a[m-1-i]

a[m-1-i]=a[i]

a[i]=t

}

while(k>0)//移位

{

t=a[m-1]//将最后一个数字暂存!

for(i=m-2i>=0i--)//循环向右移位

 a[i+1]=a[i]

a[0]=t//将最后一个数字付给第一个数字

 k--

}

}

int main()

{

int a[N]={0},m=0,k,n,i

printf("输入你要移位局昌拍的数:")

scanf("%d",&k)

printf("输入移位多少位:"迅饥)

scanf("%d",&n)

do{

a[m]=k%10

k/=10

      m++

}while(k>0)

reverser(a,n,m)

for(i=0i<mi++)

printf("%d",a[i])

printf("\n")

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12296252.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存