1. 程式人生 > >7-3 英文單詞排序(25 分)

7-3 英文單詞排序(25 分)


本題要求編寫程式,輸入若干英文單詞,對這些單詞按長度從小到大排序後輸出。
如果長度相同,按照輸入的順序不變。

輸入格式:
輸入為若干英文單詞,每行一個,以#作為輸入結束標誌。其中英文單詞總數不超過20個,
英文單詞為長度小於10的僅由小寫英文字母組成的字串。

輸出格式:
輸出為排序後的結果,每個單詞後面都額外輸出一個空格。

輸入樣例:
blue
red
yellow
green
purple
#
輸出樣例:
red blue green yellow purple

#include<iostream>
#include<string>

#include<string.h>
using namespace std;
int main()
{
    string str[21];
    string A="#";
    int a[20],b=0;
    for(int i=0;i<21;i++)
    {
        getline(cin,str[i]);
            if(str[i]==A)
            {
                break;
            }else{
                b=i+1;
                a[i]=str[i].size();
                continue;
            }
    }
    string  t;
    for(int j=0;j<b;j++)
    {
        for(int h=1;h<b-j;h++)
        {
            if(str[h-1].size()>str[h].size())
            {
                t=str[h-1];
                str[h-1]=str[h];
                str[h]=t;
            }
        }
    }
    for(int k=0;k<b;k++)
    {
        cout<<str[k]<<" ";
    }
}