View Code of Problem 126

#include<stdio.h>//DNA序列
#include<string.h>
struct str{
	char d[50];
}dna[101];
int main()
{    int i,j,f,z[101];
     int a,b,y;
	 char temp[101];
	while(scanf("%d %d",&a,&b)!=EOF)//先输入
	{
		for(i=0;i<b;i++)
			scanf("%s",&dna[i].d);//get字符串
		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;i++)
			{
				for(j=i;j<b;j++)
				{
				if(z[i]>z[j])
				{
				  strcpy(temp,dna[i].d);
				  strcpy(dna[i].d,dna[j].d);
				  strcpy(dna[j].d,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