1、数组左移右移(循环)
void Output(const int* ar, int n)
{
for (int i = 0; i < n; ++i)
{
printf("%d ", ar[i]);
}
}
void Right_Move_Array(int* ar, int n)
{
assert(ar != nullptr && n > 0);
int tmp = ar[n-1];
for (int i = n-1; i > 0; --i)
{
ar[i] = ar[i - 1];
}
ar[0] = tmp;
}
void Left_Move_Array(int* ar, int n)
{
assert(ar != nullptr && n > 0);
int tmp = ar[0];
for (int i = 0; i < n-1; ++i)
{
ar[i] = ar[i + 1];
}
ar[n-1] = tmp;
}
void Left_Move_Array_K(int* ar, int n, int k)
{
assert(ar != nullptr && n > 0);
bool tag = k >= 0 ? true : false;
if (tag)
{
k = k % n;
for (int i = 0; i < k; ++i)
{
Left_Move_Array(ar, n);
}
}
else
{
k = -k;
k