本題就是簡單的結構體排序,他先定義出一個unsortless就是一個字元串它的每個字元比他後面字元大的個數之和,例如:DAABEC。D後面比D小的有4個,A後面0個,A後面0個,B後面0個,E後面一個,C後面0個,是以是五個。
下面輸入n個字元串,每個字元串有m個字元。請你編寫個程式将字元串按照上面方法得到的數按照從小到大排序輸出~~~
#include <iostream>
#include <algorithm>
using namespace std;
struct t
{
char map[100] ;
int sum ;
};
int cmp(t a,t b)
{
return a.sum<b.sum;
}
int main()
{
int m , n ;
t p[200];
cin >> m >> n ;
int i , j , k ;
for(i = 0 ; i < n ; i ++)
{
for(j = 0 ; j < m ; j ++)
{
cin >> p[i].map[j] ;
p[i].sum = 0 ;
}
}
for(i = 0 ; i < n ; i ++)
for(j = 0 ; j < m ; j ++)
for(k = j ; k < m ; k ++)
if(p[i].map[j]>p[i].map[k])
p[i].sum++;
sort(p , p + n , cmp);
for(i = 0 ; i < n ; i ++)
cout << p[i].map << endl ;
return 0;
}