有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数
如图所示:
首先我们需要知道如何实现的算法:
1.我们将要把m单独拿出存储在一个数组中,才能使n-m的数字往后移
2.将n-m的数字从后往前依此移动
3.最后把m的值放入前面
#include<stdio.h>
#include<stdlib.h>
void Move(int *arr,int n,int m)
{
if(m<0 || m>=n)
{
return ;
}
int *brr = (int *)malloc(m*sizeof(int));
int i;
for(i=0;i<m;i++) //将后面的数据复制下来
{
brr[i] = arr[n-m+i];
}
//将前面的数据后移,先移动后面的数据
for(i=n-m-1;i>=0;i--)