1482 - 《C语言程序设计》江宝钏主编-习题7-7-循环数组

编写程序,将一维数组中的元素向右循环移动N次。

题目输入

第一行整数n,表示数组大小为n

第二行,n个数,表示数组中的n个元素。

第三行,整数N,表示数组向右移动N次。

题目输出

移动后的数组元素,每个元素后跟空格。

输入/输出样例

题目输入

5
1 2 3 4 5
2

题目输出

4 5 1 2 3 

C语言解答

#include <stdio.h>
int main(void)
{
	int a[100],i,j,b,x;
	scanf("%d",&i);
	for (b=0;b<i;b++)
	{
		scanf("%d",&a[b]);
	}
	scanf("%d",&j);
	for (;j>0;j--)
	{
		x=a[i-1];
		for (b=i-1;b>=0;b--)
		{
			a[b]=a[b-1];
		}
		a[0]=x;
	}
	for (b=0;b<i;b++)
	{
		printf ("%d ",a[b]);
	}
	return 0;
}

C++解答

#include<iostream>
using namespace std;
int a[10000];
void move(int a[],int n,int m)
{
	if (m==0) return;
	int t=a[n];
	for (int i=n; i>1; i--) a[i]=a[i-1];
	a[1]=t;
	move(a,n,m-1);
}
int main()
{
	int n,m;
	cin>>n;
	for (int i=1; i<=n; i++) cin>>a[i];
	cin>>m;
	move(a,n,m);	//递归
	for (int i=1; i<=n; i++) cout<<a[i]<<" ";
	cout<<endl;
	return 0;
}
时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题