7-68 陣列元素移動 (5分)
阿新 • • 發佈:2020-10-21
7-68 陣列元素移動 (5分)
完成陣列元素的移動功能:假設陣列有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 n;
scanf("%d",&n);
int i;
int a[n];
for(i=0;i<n;i++)
scanf("%d",a+i);
int k;
scanf("%d",&k);
int temp;
int m;
int j;
for(i=0;i<k;i++)
{
scanf("%d",&m);
temp=a[m-1];
for(j=m;j<n;j++)
{
a[j-1]=a[j];
}
a[n-1]=temp;
}
for(i=0;i<n;i++)
if(i!=n-1)
printf("%d ",a[i]);
else
printf("%d\n",a[i]);
return 0;
}