输入n个整数,将前面各数顺序向后移动m个位置,最后m个数变成最后m个数,输出调整后的n个数

用C++的指针实现怎么做,速~~~

#include <iostream>
#include<cmath>
#include<iomanip>
#include<string>
using namespace std;

int main()
{
void weiyi(int *,int,int);
int n;
int a[20];
int *p=a,m,i;
cout<<"一共多少个数?:";
cin>>n;
cout<<"$混沌系统为你服务$"<<endl<<endl;
cout<<"输入数据:";

for(i=0;i<n;i++)
cin>>*(p+i);

cout<<"请输入数字位移数:";
cin>>m;

weiyi(a,n,m);

for(p=a;p<a+n;p++)
cout<<*p<<" ";
cout<<endl;
}

void weiyi(int *p,int n,int m)
{

int b[20]; // 【p1p1p1p1p1p1p1p1p1p1】
int *p2=b,i;
i=0;
for(p2=b;p2<b+m;p2++)//移动第m个数后面的去p2【p1p1p1p1p1】【p2p2p2】
{
*(p2)=*(p+(n-m)+i);
i++;
}

for(i=n-m-1;i>=0;i--)//m位前的数顺位移动。填补移动后的空白【XXXXXX】【p1p1p1p1p1】
*(p+i+m)=*(p+i);

p2=b;
for(i=0;i<m;i++)//填补m位前移动后的空白。将p2的填充上去【XXXXXX】【p1p1p1p1p1】——》 【p2p2p2】【p1p1p1p1p1】
*(p+i)=*(p2+i);

}
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜