在一个一维数组中将所有的元素循环左移p(0<p<n)个位置

思想:ab=>ba,aˉ1bˉ1=(ba)ˉ1

#include <stdio.h>
void Reverse(int a,int b,int R[10]){
for(int i=0;i<(b-a+1)/2;i++){
int temp;
temp=R[a+i];
R[a+i]=R[a+(b-a)-i];
R[a+(b-a)-i]=temp;
}
}//对给定数组的特定范围进行逆置
void main(){
int R[10];
for(int i=0;i<10;i++){
R[i]=i+1;
}
Reverse(0,3,R);//逆置前一部分
Reverse(4,9,R);//逆置后一部分
Reverse(0,9,R);//最后总体逆置
for(int i=0;i<10;i++){
printf("%d ",R[i]);
}
}

猜你喜欢

转载自www.cnblogs.com/Yshun/p/11128770.html