(一)分两部分输出
#include <bits/stdc++.h>
using namespace std;
int main()
{
int N,M;
cin>>N>>M;
M = M%N;
int A[N+1];
for(int i=0;i<N;i++)
{
cin>>A[i];
}
//分为两部分输出,前半部分为从后面被移动到前面的部分
for(int i=N-M;i<N;i++)
{
cout<<A[i]<<" ";
}
//输出后半部分
for(int i=0;i<N-M-1;i++)
{
cout<<A[i]<<" ";
}
cout<<A[N-M-1]<<endl;//注意格式,最后一个输出不能带空格
return 0;
}
(二)输入时直接移动
#include <bits/stdc++.h>
using namespace std;
int main()
{
int N,M;
cin>>N>>M;
int A[N+1];
for(int i=0;i<N;i++)
{
cin>>A[(i+M)%N];
}
for(int i=0;i<N-1;i++)
{
cout<<A[i]<<" ";
}
cout<<A[N-1]<<endl;
return 0;
}