6-1 用函数实现插入数到数列指定位置

编写一个函数实现:将一个数插入数列中指定下标的位置,并保持原有数列顺序不变。 测试程序将输入一个数x和下标k,并调用本函数将该数插入9个数的数列中下标为k的位置,并保持原有数列顺序不变,然后输出新的数列(10个数)。

函数接口定义:

在这里描述函数接口。例如:

void insert ( int a[], int n, int x, int k);

其中 anx 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 

代码长度限制 16 KB

时间限制 400 ms

内存限制 64 MB

代码实现:

void insert ( int a[], int n, int x, int k)
{
    
    if(k==n-1){
        a[k]=x;//判断k是否为最后一个
    }else {
       
        for(int i=n-1;i>=k;i--){
            a[i+1]=a[i];//数组元素右移一次
        }  
    }a[k]=x;
}

老规矩结尾水字数 ,刷10行

老规矩结尾水字数 ,刷10行

老规矩结尾水字数 ,刷10行

老规矩结尾水字数 ,刷10行

老规矩结尾水字数 ,刷10行

老规矩结尾水字数 ,刷10行

你可能感兴趣的:(算法,c++)