定义了一个b数组为答案数组,先存储因为前面的数后移而要到前面去的数,这些数有m%n个,所以在输入n,m后有一个坑点就是不保证n>m,如果没有m%=n这一句,第二第三个点会WA,然后在将a数组的数从b[k]开始导入进b数组

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;

int main()
{
	int n,m;
	cin>>n>>m;
	m%=n;
	int a[n],b[n];
	for(int i=0;i<n;i++) cin>>a[i];

	for(int i=0;i<m;i++)
	{
		b[i]=a[n-m+i];
	}
	//for(int j=0;j<m;j++) cout<<b[j]<<' ';
	int k=0;
	for(int i=m;i<n;i++)
	{
		b[i]=a[k];
		k++;
	}
	for(int i=0;i<n-1;i++) cout<<b[i]<<' ';
    cout<<b[n-1];
	return 0;
}

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐