PTA:用函数实现插入数到数列指定位置

题目

编写一个函数实现:将一个数插入数列中指定下标的位置,并保持原有数列顺序不变。
测试程序将输入一个数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 
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;
}

你可能感兴趣的:(算法,数据结构,c语言)