#include<stdio.h> #include<string.h> struct str{ char d[51]; }dna[101],temp; int main() { int i,j,f,z[101]; int a,b,y; while(scanf("%d %d",&a,&b)!=EOF)//先输入 { for(i=0;i<b;i++) { scanf("%s",dna[i].d); } for(i=0;i<b;i++)//从第一条字符串开始 { z[i]=0; for(j=0;j<a;j++) { if(dna[i].d[j]=='A')//如果当前字符串是‘A’的话,就直接加零 { z[i]=z[i]+0; } else { for(f=j;f<a;f++)//如果不是的话,再和它之后的字符比较 { if(dna[i].d[j]>dna[i].d[f])//如果比之后的字符大,就加一 { z[i]=z[i]+1; } } } } } for(i=0;i<b-1;i++) { for(j=i+1;j<b;j++) { if(z[i]>z[j]) { //strcpy(temp,dna[i]); //strcpy(dna[i],dna[j]); //strcpy(dna[j],temp); temp=dna[i]; dna[i]=dna[j]; dna[j]=temp; y=z[i]; z[i]=z[j]; z[j]=y; } } } for(i=0;i<b;i++) { printf("%s\n",dna[i].d); } } return 0; } |
Double click to view unformatted code.