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

问题描述:

有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。
要求:
输入
输入占两行,第一行包含5个整数,整数之间用空格隔开,第二行包含1个整数,代表要插入的数。
输出
输出占6行,一行包含一个整数。

#include<stdio.h>
int main() {
    int i,p,b,a[6];
    for(i=0;i<5;i++){
        scanf("%d",&a[i]);
    }
    scanf("%d",&b);
    //确定之前的顺序
    if(a[0]>a[4]){//从大到小 
        p=0;
        for(i=4;i>=0;i--){
            if(b<=a[i]){
                p=i+1;
                break;    
            }
        }
    } else{//从小到大
        p=5;
        for(i=4;i>=0;i--){
            if(b>=a[i]){
                p=i+1;
                break;    
            }
        }        
    } 
    for(i=4;i>=p;i--){
        a[i+1]=a[i];
    }
    a[p]=b;
    for(i=0;i<6;i++){
        printf("%d\n",a[i]);
    }
    return 0;
}


 觉得有用的话采纳一下哈