数组内数字的前移 发表于 2017-09-17 | 分类于 C语言 12345678910111213141516171819202122232425262728293031323334353637383940414243#include<stdio.h>int arr[1123456];int main(){ int t; scanf("%d",&t); while(t--) { int n,m; scanf("%d%d",&n,&m); for(int i=0;i<n;i++) { scanf("%d",&arr[i]); } for(int i=0;i<n/2;i++) //将整个数组反转 { int temp=arr[i]; arr[i]=arr[n-i-1]; arr[n-i-1]=temp; } for(int i=0;i<(n-m)/2;i++) //将前n-m个反转 { int temp=arr[i]; arr[i]=arr[n-m-i-1]; arr[n-m-i-1]=temp; } for(int i=0;i<m/2;i++) //将后m个反转 { int temp=arr[i+n-m]; arr[i+n-m]=arr[n-i-1]; arr[n-i-1]=temp; } for(int i=0;i<n;i++) { printf("%d",arr[i]); printf(i<n-1?" ":"\n"); } } return 0;}