2083 - 【一维数组】数组元素移动(2)

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

读入N个整数存放在数组中,将每个元素依次后移一个位置,最后一个元素移动到第一个元素的位置。按照这种移动方法,总共移动x次,输出移动后的结果。

题目输入

第一行,一个整数n(n不超过100)

第二行:n个整数,相邻数值之间用一个空格分隔。

第三行:一个整数x(0<x<n)

题目输出

移动x次以后的结果

输入/输出样例

输入格式

10
1 2 3 4 5 6 7 8 9 10
2

输出格式

9 10 1 2 3 4 5 6 7 8

C语言解答

#include <stdio.h>

int main()
{
	int i,n,x,a[1001]={0};
    scanf("%d",&n);
    for (i=1;i<=n;i++)
		scanf("%d",&a[i]);
    scanf("%d",&x);
    printf("%d",a[n-x+1]);
    for (i=n-x+2;i<=n;i++)
		printf(" %d",a[i]);
    for (i=1;i<=n-x;i++)
		printf(" %d",a[i]);
    printf("\n");
	
	return 0;
}

C++解答

#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
	int n;
	cin>>n;
	int a[110];
	for(int i=1;i<=n;i++)
	    cin>>a[i];
	int t,x;
	cin>>x;
	for(int i=1;i<=x;i++)
	{
		t=a[n];
		for(int j=n;j>=2;j--)
			a[j]=a[j-1];
		a[1]=t;
	}
	for(int i=1;i<=n-1;i++)
		cout<<a[i]<<' ';
	 cout<<a[n];
	//system("pause");
	return 0;
	
}