杭电acm 2019 数列有序

2009-09-26 15:36

这题本来想开数组的,然后找到插入位置,再把所有后面的数后移一位的,可是感觉不开数组直接依次比较
然后输出会方便一点的,可是我现在后悔了,这样很麻烦的,要考虑很多啊:我插在第一位,然后还要告诉
后面已经插过了,还要区分是不是插在最后面。郁闷的了….

#include<iostream>
using namespace std;
int main()
{
    int n,m,num;
    while(cin>>n>>m&&n!=0||m!=0)
    {
        int isInsert=0;
        for(int i=0;i<n;i++) 
        {  
            cin>>num;
            if(i!=n-1)  
            {           
                if(num<m)
                    cout<<num<<" ";
                ///判断是否已经插入,isInsert=0表示没有插入
                //如果没有插入要输出m和num,已插入就只需输出num 
                else if(isInsert==0)     
                { cout<<m<<" "<<num<<" ";
                    isInsert=1;
                }
                
                else 
                    cout<<num<<" ";
            }
            else
            {
                if(num<m)
                    cout<<num<<" "<<m;//别忘了输入的数都比m小的情况,把m插最后 
                else if(isInsert==0)
                    cout<<m<<" "<<num;
                else 
                    cout<<num;     
            }
        }
        cout<<endl;
    }
    return 0;
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注