View Code of Problem 126

#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)==2)//先输入
	{
		for(i=0;i<b;i++)
			{
			 	scanf("%d",&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.


Back to problem 126