有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数(C++)

n位数循环后移m位

程序实现

#include <iostream>
using namespace std;
int n,m,i,j;
int main() 
{
    
       void move(int *p,int x,int y);
	cout<<"请输入数据个数n:";
	cin>>n;cout<<endl;
	int *array=new int[n];
	cout<<"请输入移位次数m:";
	cin>>m;cout<<endl;
	cout<<"输入数据:"<<endl;
	for(i=0;i<n;i++)
		cin>>*(array+i);
	move(array,n,m);
	for(i=0;i<n;i++)
		cout<<*(array+i)<<'\t';
	delete []array;
	return 0;
}
void move(int *p,int x,int y)
{
    
       int temp;
	for(i=0;i<y;i++)
	{
    
       temp=*(p+x-1);
		for(j=0;j<x-1;j++)
			*(p+x-1-j)=*(p+x-2-j);
		*p=temp;
	}
}

猜你喜欢

转载自blog.csdn.net/HEU_monster/article/details/108622408