将长度为n的数组arr后面m个数据移到最前面

mac2024-05-30  45

#include<stdio.h> #include<stdlib.h> #include<string.h> #include<ctype.h> #include<assert.h> void Move(int *arr,int n,int m) { if(arr==NULL||n<=0||n<m) { return ; } int *brr=(int *)malloc(m*sizeofof(int)); //将arr中后面的m个数据移到brr中 int i; for (i=0;i<m;i++) { brr[i]=arr[n-m+i]; } //将arr中前面的数据后移 for(i=n-m-1;i>=0;i--) { arr[i+m]=arr[i]; } //将brr数据移到arr中 for(i=0;i<m;i++) { arr[i+m]=arr[i]; } free(brr); } int main() { int arr[]={7,9,5,2,7,23,77,43}; Move(arr,8,2); printf("%d\n",arr); }
最新回复(0)