uva——DNA序列——1368

来源:互联网 发布:小爱同学 知乎 编辑:程序博客网 时间:2024/05/22 12:54
一遍过,水题一道
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<math.h>#include<ctype.h>char str[1000][1000];char res[1001];int main(){    int n,count;    scanf("%d",&n);    for(count=1;count<=n;count++)    {        int p,q;        int i,j;        scanf("%d%d",&p,&q);        getchar();        //输入        for(i=0;i<p;i++)        {            gets(str[i]);        }        for(i=0;i<q;i++)        {            res[i]='A';        }        //目标初始化        int num_A=0,num_C=0,num_G=0,num_T=0,max=0;        for(i=0;i<q;i++)        {            num_A=0,num_C=0,num_G=0,num_T=0,max=0;            for(j=0;j<p;j++)            {                if(str[j][i]=='A')                {                    num_A++;                    if(max<num_A)                    {                        max=num_A;                        res[i]='A';                        continue;                    }                    if(max==num_A&&res[i]>str[j][i])                    {                        max=num_A;                        res[i]='A';                        continue;                    }                }                 if(str[j][i]=='C')                {                    num_C++;                     if(max<num_C)                    {                        max=num_C;                        res[i]='C';                        continue;                    }                    if(max==num_C&&res[i]>str[j][i])                    {                        max=num_C;                        res[i]='C';                        continue;                    }                }                 if(str[j][i]=='G')                {                     num_G++;                     if(max<num_G)                    {                        max=num_G;                        res[i]='G';                        continue;                    }                    if(max==num_G&&res[i]>str[j][i])                    {                        max=num_G;                        res[i]='G';                        continue;                    }                }                 if(str[j][i]=='T')                {                    num_T++;                     if(max<num_T)                    {                        max=num_T;                        res[i]='T';                        continue;                    }                    if(max==num_T&&res[i]>str[j][i])                    {                        max=num_T;                        res[i]='T';                        continue;                    }                }            }        }        int x=0;        for(i=0;i<q;i++)        {            for(j=0;j<p;j++)            {                if(res[i]!=str[j][i])                    x++;            }        }        printf("%s\n",res);        printf("%d\n",x);        memset(str,0,sizeof(str));        memset(res,0,sizeof(res));    }    return 0;}

0 0
原创粉丝点击