c++整数平移问题,部分代码不太懂,求助大佬们!!!

1.不太清楚while(p1>a)的作用,如果平移个数m小于4的时候,p1不应该总是
大于a的吗???
2.代码如下:
#include
using namespace std;
int main()
{
void move(int[], int, int);
int a[5] = { 1,2,3,4,5 },m;
cout << "please input places you want to move : ";
cin >> m;
move(a, 5, m);
return 0;
}
void move(int a[], int n, int m)
{
int* p1, * p2;
int k = 1,t;
while (k <= m)
{
p1 = a + n - 1;
t = *p1;
p2 = a;
while (p1 > a)
{
*p1 = *(p1 - 1);
p1--;
}
*p2 = t;
k++;
}
for (int i = 0; i < n; i++)
cout << a[i] << " ";
}

c++

1个回答

把需要插入的地方之后的数向后移动一个位置,为插入留出空间

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问