一个不简单的c++程序

已知有按元素值从小到大顺序排列的一维数据{23,35,110,145,207}。后面不断插人新的数据元素。例如,插人的第1个数为52,则插入后的一一 维数据为{23,35,52, 110,145,207};插人的第2个数为10, 则插入后的一维数据为{10,23, 35,52, 110,145,207};插人的第3个数为321,则插入后的一-维数据为{10, 23, 35,52,110,145,207,321

#include <iostream>
using namespace std;
int main()
{
    int a[20] = {23,35,110,145,207};
    int i,j,data,nmb = 5;
    cin >> data;
    for (i=0;i<nmb;i++)
    {
        if(a[i] > data)
        {
            for(j=nmb;j>i;j--)
                a[j] = a[j-1];
            a[i] = data;
            break;
        }
    }
    if(i==nmb) a[nmb]= data;
    nmb++;
    cout << "插入后:" ;
    for(i=0;i<nmb;i++)
        cout << a[i] << " " ;
    return 0;
}
#include <iostream>
using namespace std;
int main()
{
    int a[10] = {23,35,110,145,207};
    int n=5,d,i,j;
    cin >> d;
    for (i=0;i<n;i++)
    {
        if(a[i] > d)
        {
            for(int j=n;j>i;j--)
                a[j] = a[j-1];
            a[i] = d;
            break;
        }
    }
    if(i==n)   //如果新插入的数大于所有数,则该数加入到数组尾
        a[n] = d;
    n++;
    for(i=0;i<n;i++)
        cout << a[i] << " " ;
    return 0;
}