向数组中插入元素

题目描述

已有一个已排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中。

输入

第一行,原始数列。 第二行,需要插入的数字。

输出

排序后的数列

样例输入

1 7 8 17 23 24 59 62 101
50

样例输出

1
7
8
17
23
24
50
59
62
101
 

#include <stdio.h>

int main()

{

    int a[100] = {0}; //因为你要继续加入数据,所以数组不能定义成9,要大一些,至少应该是10

    int i;

    for(i = 0;i < 9;i++ ) //输入9个数,必须用循环,一句解决不了

        scanf("%d",&a[i]);

    

    int j,temp;

    for(i = 0;i < 8;i++) //完成排序

    {

        for(j = i + 1;j < 9;j++)

            if(a[i] > a[j])

            {

                temp = a[i];

                a[i] = a[j];

                a[j] = temp;

            }

    }

    scanf("%d", &temp );

    for(i = 0;i < 9;i++ ) //查找插入位置

    {

        if ( temp < a[i] )

            break;

    }

    for( j = 8;j >= i;j-- ) //i后面的数后移

        a[j + 1] = a[j] ;

    a[i] = temp; //插入数据到i位

    

    for(i = 0;i < 10;i++ ) //输出数组

        printf("%d\n",a[i]);

    return 0;

}

猜你喜欢

转载自blog.csdn.net/qq_39898553/article/details/78743640