pku ACM 1007 编译超时咯

来源:互联网 发布:packageinfo.java 编辑:程序博客网 时间:2024/05/28 09:33
 #include <stdio.h>
 #include <stdlib.h>
 #define  M  100        //字符串的最大长度行数
 #define  N   50  //字符串的字母最大长度
 typedef  struct number
 {
 int jiaobiao;
 int paiming;
 }node;
 void   init(char DNASORT[M][N],int *r,int *t)   //初始化待处理的数据
 {
  int i,j; 
  int flag=0;//用来保存数据的输入正确
  char  c;//用来保存中间数据
  while(!flag)
  {
  scanf("%d%d",r,t);
  if(*r<=M&&*t<=N)
  {
    flag=1;
  }
  }
  for(i=0;i<*t;i++)
  {
   for(j=0;j<*r;j++)
   {
    flag=0;
    while(!flag)
    {
     scanf("%c",&c);
     if(c=='A'||c=='C'||c=='G'||c=='T')
     {
       DNASORT[i][j]=c;
       flag=1;
     }
     }
   }
  }
 }
void  sort(node DD[M],int t)
{
 int i,j;
 int tempjiaobiao;
 int temppaiming;
 for(i=0;i<t;i++)
 {
  for(j=i+1;j<t;j++)
  {
     if(DD[i].paiming>DD[j].paiming)
     {
       tempjiaobiao=DD[i].jiaobiao;
       temppaiming=DD[i].paiming;
     DD[i].jiaobiao=DD[j].jiaobiao;
     DD[i].paiming=DD[j].paiming;
     DD[j].jiaobiao=tempjiaobiao;
     DD[j].paiming=temppaiming;
     }
  }
 }

void   chuli(char DNASORT[M][N],int r,int t)         //处理初始化后的数据
{
 node  DD[M];
   int i,j,k;
  for(i=0;i<t;i++)
  {
   DD[i].jiaobiao=i;
   DD[i].paiming=0;
  }
  for(i=0;i<t;i++)
  {
   for(j=0;j<r;j++)
    {
          for(k=j+1;k<r;k++)
          {
     if(DNASORT[i][j]>DNASORT[i][k])
     {
      DD[i].paiming=DD[i].paiming+1;
     }
    }
    }
  }
  sort(DD,t);
  for(i=0;i<t;i++)
  {
   k=DD[i].jiaobiao;
   for(j=0;j<r;j++)
   {
       printf("%c",DNASORT[k][j]);
     }
     printf("\n");
  }
 
}
 void    print(char DNASORT[M][N],int r,int t)        //显示处理后的数据
 {
  int i,j;
  for(i=0;i<t;i++)
  {
   for(j=0;j<r;j++)
   {
    printf("%c",DNASORT[i][j]);
   }
   printf("\n");
  }
 }
  main()
  {
   char   DNASORT[M][N];//定义一个DNA数组用来保存数据
   int r,t;
   init(DNASORT,&r,&t);
   chuli(DNASORT,r,t);
   //print(DNASORT,r,t);
  }
0 0
原创粉丝点击