完成数组元素的移动功能:假设数组有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
int main()
{
int n,i,k,x,j;
int arr[100];
scanf("%d", &n);
for (i = 0;i < n;i++)
{
scanf("%d", &arr[i]);
}
scanf("%d", &k);
for (;k>0;k--)
{
scanf("%d", &x);
j = arr[x - 1];
for (i = x ;i < n;i++)
{
arr[i - 1] = arr[i];
}
arr[n-1] = j;
}
for (i = 0;i < n;i++)
{
if(i==0)
{
printf("%d",arr[i]);
}
else
printf(" %d", arr[i]);
}
return 0;
}
该程序实现了一个功能,即根据输入的数组长度、数组元素和移动次数,按指定位置移动数组元素并将移动后的元素放到数组末尾。通过示例输入和输出展示了数组在多次移动操作后的状态。

1228

被折叠的 条评论
为什么被折叠?



