依旧水题
#include "iostream" #include "cstdlib" using std::cin; using std::cout; using std::endl; struct AL { char * Line; short Mse; }; int compare(const void *a,const void *b) { return ((AL*)a)->Mse - ((AL*)b)->Mse; } void GetMse(short &Len,AL &Str) { char id,ix; for( ix = 0 ; ix < Len - 1 ; ix ++ ) { for( id = ix + 1 ; id < Len ; id ++ ) { if(Str.Line[ix] > Str.Line[id]) { Str.Mse ++; } } } } int main(void) { short Len,Lin; char i; cin >> Len >> Lin; AL * Str = new AL[Lin]; for( i = 0 ; i < Lin ; i ++ ) { Str[i].Line = new char[Len + 1]; cin >> Str[i].Line; Str[i].Mse = 0; GetMse(Len,Str[i]); } qsort(Str,Lin,sizeof(Str[0]),compare); for( i = 0 ; i < Lin ; i ++ ) { cout << Str[i].Line << endl; delete []Str[i].Line; } return 0; }