| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
在我的机子上通过,却通不过服务器,帮忙看看(附上原代码)/*DNA排序*/
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
#define MAX 10000000
typedef struct
{
char *ch;
int *res;
}DNA_info;
DNA_info *di;
void cat(int n, int m, DNA_info *di)
{
int i,j,k,sum;
for(i=0;i<m;i++)
{
sum=0;
for(j=0;j<n;j++)
{
if(di[i].ch[j]=='A')
continue;
else
{
for(k=j+1;k<n;k++)
if(di[i].ch[k]<di[i].ch[j])
sum+=1;
}
}
*di[i].res=sum;
}
}
void out(DNA_info *di, int m)
{
int i,j,No,Res;
for(i=0;i<m;i++)
{
No=0;
Res=*di[0].res;
for(j=0;j<m;j++)
{
if(*di[j].res<Res)
{
No=j;
Res=*di[No].res;
}
}
*di[No].res=MAX;
printf("%s\n",di[No].ch);
}
}
int main(int argc, char** argv)
{
int m, n=10,i;
char ch;
scanf("%d%d",&n,&m);
di=(DNA_info*)malloc(sizeof(DNA_info)*m);
for(i=0;i<m;i++)
{
di[i].ch=(char*)malloc(sizeof(char)*(n+1));
di[i].res=(int*)malloc(sizeof(int));
scanf("%s",di[i].ch);
gets(&ch);
*di[i].res=0;
}
printf("\n");
cat(n,m,di);
out(di,m);
for(i=0;i<m;i++)
{
free(di[i].ch);
free(di[i].res);
}
free(di);
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator