//我这个是ac了的 #include <iostream> #include <string> using namespace std; typedef struct{ string str; int len; }Sqstack; //随便取得名字 int main() { int n; Sqstack *a[1000]; while(cin>>n){ if(n==0) return 0; cin.ignore();//后面有getline函数一定要ingnore string s; for(int i=0;i<n;i++) { getline(cin,s); if(s=="stop") { n=i; break; } else{ a[i]=new Sqstack; a[i]->str=s; a[i]->len=s.length(); } }//(for) Sqstack *b; for(int i=0;i<n;i++) for(int j=0;j<(n-1);j++) { if((a[j]->len)>(a[j+1]->len)) { b=a[j]; a[j]=a[j+1]; a[j+1]=b; } } for(int i=0;i<n;i++) { cout<<a[i]->str<<endl; } }//(while) return 0; } /************************************************************** Problem: 2219 User: admin Language: C++ Result: Accepted Time:9 ms Memory:2076 kb ****************************************************************/