循环右移,移动的位数是m%n
#include<iostream>
#include<cstring>
using namespace std;
int main ()
{
int n,m;
int s[105],a[105];
cin>>n>>m;
for(int i=0;i<n;i++)
cin>>s[i];
int k=0;
for(int i=m%n;i<n;i++)//将原来数组后面移到前面的元素先存到一个数组中,注意从m%n开始
{
a[i]=s[k];
k++;
}
for(int i=0;i<m%n;i++)//再将后面的元素按顺序输出
{
a[i]=s[k];
k++;
}
cout<<a[0];
for(int i=1;i<n;i++)
cout<<" "<<a[i];//注意空格问题
cout<<endl;
return 0;
}