分析:将R中前P个元素逆置,剩下的元素再逆置,再将所有元素整体逆置即可。
#include<iostream>
#define N 10
using namespace std;
void Reverse(int R[], int i_unFirstNum, int i_unEndNum)
{
int i, j, temp;
for (i = i_unFirstNum, j = i_unEndNum; i < j; i++, j--)
{
temp = R[i];
R[i] = R[j];
R[j] = temp;
}
}
void RCR(int R[], int i_unNumOfR, int i_unNumMove)
{
if (i_unNumMove <= 0 || i_unNumMove > i_unNumOfR)
{
cout << "ERROR" << endl;
}
else
{
Reverse(R, 0, i_unNumMove - 1);
Reverse(R, i_unNumMove, i_unNumOfR - 1);
Reverse(R, 0, i_unNumOfR - 1);
}
}
int main()
{
int unM, unN;
int R[N];
cin >> unM;
cin >> unN;
for (int i = 0; i < unN; i++)
{
cin >> R[i];
}
RCR(R, unN, unM);
for (int i = 0; i < unN; i++)
{
cout << R[i] << ",";
}
cout << endl;
return 0;
}