题目描述
有一个有序数字序列,从小到大排序,将一个新输入的数插入到序列中,保证插入新数后,序列仍然是升序。
输入描述:
第一行输入一个整数N(0≤N≤50)。

第二行输入N个升序排列的整数,输入用空格分隔的N个整数。

第三行输入想要进行插入的一个整数。
输出描述:
输出为一行,N+1个有序排列的整数。

解题思路
利用sort对插入后的数组进行排序,但是要注意判断原数组是升序还是降序的。

代码

#include<iostream>
#include<algorithm>//算法的头文件,后面要使用排序算法sort,必须包含

using namespace std;

int main()
{
    int n;
    cin>>n;
    int a[n+1];//放置索引越界,将数组定义的大一些
    for(int i=0;i<n;++i)
        cin>>a[i];//依次输入数组a的元素
    cin>>a[n];
    if(a[0]>a[1])//说明数组是降序的
        sort(a,a+n+1,greater<int>());  //降序,greater表示降序
    else//数组为升序
        sort(a,a+n+1,less<int>());   //升序,less表示升序
    for(auto &p:a)//所有a中的元素
        cout<<p<<" ";//都输出
    return 0;
}