codeup习题6-4

题目描述

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

假设数组长度为10,数组中前9个数(这9个数要求从键盘上输入,输入时要满足自小到大的输入顺序)已经按从小到大进行排序。

然后再从键盘上输入一个整数,将此整数插入到前有序的9个数中,使得最终的10个数依然是从小到大有序的。

输入

第一行输入以空格分隔的9个整数数,要求按从小到大的顺序输入。

第二行输入一个整数

输出

从小到大输出这10个数,每个数一行。

样例输入

1 11 21 31 41 51 61 71 81
45

样例输出

1
11
21
31
41
45
51
61
71
81

提示

定义数组时,把数组长度定义为10.

 

 

好久没敲代码,这道题稍微卡了几分钟。现在考完408不久,所以一开始想到的就是用直接插入排序,但是后来发现题目里已经要求了前9个数据有序,所以就换了个思路。(好吧这代码肯定很菜)然后也好久没用break,用在了if的外面,断点调试了好久才发现orz。

附上代码:

#include
/*#include*/
int main(){
    int i,d;
    int j=9;
    int a[10]={0};
    for(i=0;i<9;i++){
        scanf("%d",&a[i]);
    }
    scanf("%d",&d);
    for(i=0;i<9;i++){
        if(a[i]>=d){
            j=i;
            break;
    }
        }
    for(i=9;i>j;i--){
        a[i]=a[i-1];
    }
    a[j]=d;
    for(i=0;i<10;i++){
        printf("%d\n",a[i]);
    }
}

你可能感兴趣的:(算法笔记)