#include<iostream>
using namespace std;
void move(int a[],int n,int m);
int main()
{
int i,n,m;
int a[100];
cout<<"Input n:"; //输入n以确定数组的大小
cin>>n;
cout<<"Input n numbers:";//输入数组中的数据
for(i = 0;i < n;i++)
cin>>a[i];
cout<<"Input m(this is distance):";//输入要左移的位数 m
cin>>m;
cout<<"Befor:"; //输出 排序前 的数组
for(i = 0;i < n;i++)
cout<<" "<<a[i];
move(a,n,m);
cout<<endl<<"After:"; //输出 排序后 的数组
for(i = 0;i < n;i++)
cout<<" "<<a[i];
return 0;
}
void move(int a[],int n,int m)
{
/*先把第1个数a[0]取出来(防止在移动时被覆盖),
然后把后续的依次像前移动(赋值),
该过程重复 m 次,即可左移 m 位成功 */
int i,j,t;
for(i = 0; i < m; i ++)
{
t = a[0];
for(j = 0; j < n-1; j ++)
a[j] = a[j+1];
a[n-1] = t;
}
}
执行结果如下: