2024-11-06 03:33:10
#include<iostream>
using namespace std;
void move(int a[],int begin,int n)
{
int *brr=new int [n];//C++支持动态数组
int i;
for(i=0;i<n;i++)
brr[i]=a[begin+i-1]; //注意:因为数组从0开始,位置m实际操作数为m-1
for(i=begin-2;i>=0;i--) //此处的m-2即m前一个数的实际位置
a[i+n]=a[i];
for(i=0;i<n ;i++)
a[i]=brr[i];
delete[] brr;
}
int main(void)
{
int arr[15]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int m,n;
int len=sizeof(arr)/sizeof(arr[0]);
cout<<"len:"<<len<<endl;
cout<<"输入从位置m开始,移动的n个数:m=,n=";
scanf("%d%d",&m,&n);
// 实际应用中此处应当加入判断m,n是否符合操作要求,不能超出数组大小之类的
move(arr,m,n);
for(int i=0;i<15;i++)
cout<<arr[i]<<" ";
cout<<endl;
return 0;
}
2024-11-06 03:32:14