#include<stdio.h>
#include<math.h>
int isPrime(int num);
int main()
{
int n,m;
scanf("%d%d",&n,&m);
m=n-(m%n);
int a[n],i;
for(i=0; i<n; i++)
scanf("%d",&a[i]);
for(i=m; i<n-1; i++)
printf("%d ",a[i]);
if(m!=n)
printf("%d ",a[n-1]);
for(i=0; i<m-1; i++)
printf("%d ",a[i]);
printf("%d",a[m-1]);
return 0;
}
该方法仅为解决问题而解决问题。
第一个坑是循环移动,所以首先对m进行一下处理(m%=n),如题,可以理解为,移动输出后的数组第一个数为原数组的第n-(m%n)+1个数,于是从下标为n-(m%n)开始。注意处理一下如果移动个数为数组长度个的情况,还有注意格式化。