题目如图。
#include<stdio.h> int main() { int i,j=0; int n,m; int a[100]; scanf("%d %d",&n,&m); if(m>n) m=m-n; for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(i=0;i<n;i++) { a[i+m+n]=a[i]; } for(i=n+n;i<2*n+m;i++) { a[j]=a[i]; j++; } for(i=m+n;i<2*n;i++) { a[j]=a[i]; j++; } for(i=0;i<n;i++) { if(i!=n-1) printf("%d ",a[i]); else printf("%d\n",a[i]); } return 0; }
这里有一个坑,输入第一行,第一个数字不一定比第二个数字大,我的做法是将这串字符集体移动,使a[i+m+n]=a[i];然后把最后几个n移到最前面,再将a[m+n]后面的移到到前面,这个做法要仔细,不然一下就会错误;