题目
编写一个函数实现:将一个数插入数列中指定下标的位置,并保持原有数列顺序不变。
测试程序将输入一个数x和下标k,并调用本函数将该数插入9个数的数列中下标为k的位置,并保持原有数列顺序不变,然后输出新的数列(10个数)。
函数接口定义:
在这里描述函数接口。例如:
void insert ( int a[], int n, int x, int k);
其中 a 、n 、x 和 k 都是用户传入的参数。 a 是待查数列的数组首地址; n 是数组元素个数; x是带插入数的值; k是带插入数的下标,将实现将x插入 n个数的数组 a 中下标为 k 的位置。
裁判测试程序样例:
#include <stdio.h>
void insert ( int a[], int n, int x, int k);
int main()
{
int a[10]={1,4,13,9,6,11,18,14,25},x,k;
int i;
scanf("%d%d",&x,&k);
insert(a,9,x,k);
for(i=0;i<10;i++)
printf("%4d", a[i]);
return 0;
}
/*请将答案写在这里*/
输入样例:
输入两个数,第1个数代表待插入的数值,第2个数应在[0,9]间代表待插入的位置下标
15 9
输出样例:
输出插入15后的数列
1 4 13 9 6 11 18 14 25 15
解题过程
void insert ( int a[], int n, int x, int k){
if(k==n-1){
a[k]=x;
}else {
for(int i=n-1;i>=k;i--){
a[i+1]=a[i];
}
}a[k]=x;
}