数组元素的移动
题目描述
完成数组元素的移动功能:假设数组有n个元素,输入一个数x,
把数组的第x个位置的元素先保存起来,然后把x+1到n的元素,
依次往前移一位,最后将原来的第x个位置的元素放在数组的最后。
重复若干次这样的移动,得到最后的结果。
功能需求
输入格式:
第一行包括一个整数n(1<=n<=100),表示数组元素的个数。
第二行输入n个数组元素,均为整数,用空格隔开。
第三行输入一个数k(1<=k<=100),表示要进行k次移动。
接下来k行,每行一个数x,表示要移动第x个元素。
输出格式:
输出经过k次移动后的数组,每两个元素之间用空格隔开。
输入样例:
10
1 2 3 4 5 6 7 8 9 10
4
4
3
2
5
输出样例:
1 5 6 7 9 10 4 3 2 8
代码内容
#include<stdio.h>
int main()
{
int i,j,n,k,x;
scanf("%d",&n);
int a[n],b[n];
for(i=0;i<n;i++)
scanf("%d",&a[i]);
scanf("%d",&k);
for(j=0;j<k;j++)
{
scanf("%d",&x);
for(i=0;i<x;i++)
b[i]=a[i];
for(i=x;i<n;i++)
b[i-1]=a[i];
b[n-1]=a[x-1];
for(i=0;i<n;i++)
a[i]=b[i];
}
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}