有N个整数,使前面各数顺序向后移动M个位置,最后M个数变成最前面M个数。
#include<stdio.h>
#include<math.h>
void Move(int *arr,int n,int m);
int main(void){
int arr[10]={99,88,77,66,55,44,33,22,11,0};
printf("before move:\n");
for(int i=0;i<10;i++)
printf("%d ",arr[i]);
printf("\n");
Move(arr,10,5);
printf("after move:\n");
for(int i=0;i<10;i++)
printf("%d ",arr[i]);
printf("\n");
}
void Move(int *arr,int n,int m){
int *p=(int *)malloc(sizeof(int)*m);
if(p==NULL){printf("memory error.");return;}
int i,j;
for(i=n-m,j=0;i<n,j<m;i++,j++)
*(p+j)=arr[i];
for(i=n-1;i>=m;i--){
arr[i]=arr[i-m];
}
for(i=0;i<m;i++)
arr[i]=*(p+i);
free(p);
return;
}
标签:arr,int,void,个数,后移,include,指针
From: https://www.cnblogs.com/zhongta/p/18200213