一开始理解错题意了,熬到凌晨2点什么也没有做出来。今天早上回来后又仔细看了看,弄明白了题意,做的时候除了输入卡住了一会儿还是蛮顺利的,1AC,不错。



#include<stdio.h>
#include<string.h>
char DNA[55][1010]={0},final[1010]={0};
int main()
{
    int i,j,m,n,T;
    scanf("%d",&T);
    while(T--)
    {
        memset(DNA,0,sizeof(DNA));
        memset(final,0,sizeof(final));
        scanf("%d%d",&m,&n);
        int A,C,G,T,count=0;
        for(i=0; i<m; i++)
            scanf("%s",&DNA[i]);
        for(i=0; i<n; i++)
        {
            A=C=G=T=0;
            for(j=0; j<m; j++)
            {
                if(DNA[j][i]=='A')
                    A++;
                else if(DNA[j][i]=='C')
                    C++;
                else if(DNA[j][i]=='T')
                    T++;
                else if(DNA[j][i]=='G')
                    G++;
            }
            if(A>=C&&A>=G&&A>=T)
                final[i]='A';
            else if(C>A&&C>=G&&C>=T)
                final[i]='C';
            else if(G>A&&G>C&&G>=T)
                final[i]='G';
            else if(T>A&&T>C&&T>G)
                final[i]='T';
        }
        for(i=0; i<n; i++)
            for(j=0; j<m; j++)
            {
                if(final[i]!=DNA[j][i])
                    count++;
            }
        puts(final);
        printf("%d\n",count);
    }
}