数组元素循环右移
/*
【问题描述】设计算法将含有n个元素的数组A的元素A[0...n-1]循环右移m位。
【输入形式】输入一位数组元素 m的值
【输出形式】输出循环右移m位后的一位数组
【样例输入】
2 1 4 5 8 3
2
【样例输出】
8 3 2 1 4 5
2021/4/19
*/
#include <iostream>
const int MaxSize=100;
using namespace std;
void Rotate(int(&a)[MaxSize],int len,int m) //数组元素循环右移m位
{
m=m%len;
int next=a[0],start=0,n=0,i=m;//i为next要右移到的下标
while(n<len) //n为右移个数
{
int temp=a[i];
a[i]=next;
next=temp;
n++;
if(i==start) //出现环
{
i=(i+1)%len;
next=a[i];
start=i;
}
i=(i+m)%len;
}
}
void show(int *a,int n)
{
for(int i=0;i<n;i++)
cout<<a[i]<<" ";
}
int main()
{
int m,a[MaxSize],k,n=0;
while(cin>>k)
{
a[n++]=k;
if(cin.get()=='