Advertisement

5-11 英文单词排序(25分)(结构体)

阅读量:

5-11 英文单词排序(25分)请编写一个程序来处理一组英文单词,并按照以下规则进行排序:将这些单词按照长度由短到长排列,并输出结果。若长度相同,则保留输入原有顺序。

5-11 英文单词排序(25分)请编写一个程序来处理一组英文单词,并按照以下规则进行排序:将这些单词按照长度由短到长排列,并输出结果。若长度相同,则保留输入原有顺序。

输入格式:

实现, 达成, 取得

输出格式:

输出为排序后的结果,每个单词后面都额外输出一个空格。

输入样例:

blue
red
yellow
green
purple

输出样例:

red blue green yellow purple

复制代码
    #include<iostream>
    #include<string> 
    #include<algorithm>
    using namespace std;
    struct ss
    {
    string a;
    int n;
    };
    ss s[25];
    int cmp(ss q,ss h)
    {
    if(q.a.length()!=h.a.length())
        return q.a.length()<h.a.length();
    return q.n<h.n;
    }
    int main()
    {
    int n=0;
    while(cin>>s[n].a&&s[n].a[0]!='#')
    {
        s[n].n=n;
        n++;
    }
    sort(s,s+n,cmp);
    for(int i=0;i<n;i++)
    {
        cout<<s[i].a<<" ";
    }
    }
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    代码解释

全部评论 (0)

还没有任何评论哟~