#include<iostream>
using namespace std;
int q[210] = { 0 };
void move(int num,int pos)
{
for (int i = num - 1; i >= 0; --i)
q[i + pos] = q[i];
for (; pos >= 1; --pos)
q[pos-1] = q[pos + num-1];
}
void show(int num)
{
cout << q[0];
for (int i = 1; i < num; ++i)
cout << " " << q[i];
}
int main()
{
int num = 0,pos=0;//num几个数字,pos移动几位
cin >> num;
cin >> pos;
for (int i = 0; i < num; ++i)
cin >> q[i];
pos = pos%num;
move(num,pos);
show(num);
system("pause");
return 0;
}
第二次做的(相比第一次,数组空间少了一半,而且也节省了数组重新赋值的时间)
#include <iostream>
using namespace std;
int nums[105] = { 0 };
int main()
{
int N, M;
cin >> N >> M;
for (int i = 0; i < N; ++i)
cin >> nums[i];
int flag = 0;
for (int i = N-M%N; i < N; ++i)
{
if (flag)
cout << ' ';
cout << nums[i];
flag = 1;
}
for (int i = 0; i < N - M%N; ++i)
{
if (flag)
cout << ' ';
cout << nums[i];
flag = 1;
}
system("pause");
return 0;
}