算法原理:
-
逆序排列abcd:abcd1234 → dcba1234;
-
逆序排列1234:dcba1234 → dcba4321;
-
全部逆序:dcba4321 → 1234abcd。
#include <iostream>
using namespace std;
void mix(int a[],int num)
{
int firstnum = num-1;//在这里将左移位数转换为下标
turn(a,0,firstnum);
turn(a,num,9);//其实是firstnum+1
turn(a,0,9);
}
void turn(int array[],int a,int z)
{
for(int temp = 0;a<z;a++,z--)
{
temp = array[a];
array[a]=array[z];
array[z]=temp;
}
}
void main()
{
int a[10] = {1,2,3,4,5,6,7,8,9,10};
int num;
cout << "左移几位?"<<endl;
cout << "我要左移:";
cin>>num;
num = num%10;//可以左移超过10位的位数
mix(a,num);//函数封装
cout <<" array:";
for(int i= 0; i<10 ; i++ )
cout <<" "<<a[i]<<" ";
cout <<endl;
system("pause");
}