UVA1368 萌新求助--------

测试感觉没问题鸭就是WA

#include <stdio.h>
#include <string.h>
#define M 55
#define N 1010

int Max(int a[])
{
    int max = 0;
    for(int i = 1; i < 4; i++)
        if(a[max] < a[i]) max = i;
    return max;
}

char s[M][N], ans[N];

int main()
{
    int t, n, l, cr = 0, num[4];
    scanf("%d", &t);
    while(t--){
        scanf("%d %d", &n, &l);
        for(int i = 0; i < n; i++){
            memset(s[i], 0, sizeof(s[i]));
            scanf("%s", s[i]);
        }
        cr = 0;
        for(int j = 0; j < l; j++){
            memset(num, 0, sizeof(num));
            for(int i = 0; i < n; i++){
                if(s[i][j] == 'A') num[0]++;
                else if(s[i][j] == 'C') num[1]++;
                else if(s[i][j] == 'G') num[2]++;
                else num[3]++;
            }
            if(Max(num) == 0) {ans[j] = 'A'; cr += num[1] + num[2] + num[3];}
            else if(Max(num) == 1) {ans[j] = 'C'; cr += num[0] + num[2] + num[3];}
            else if(Max(num) == 2) {ans[j] = 'G'; cr += num[0] + num[1] + num[3];}
            else {ans[j] = 'T'; cr += num[0] + num[1] + num[2];}
        }
        printf("%s\n%d\n", ans, cr);
    }
    return 0;
}

呐解决了

ans[l] = 0;
printf("%s\n%d\n", ans, cr);

原来忘了加结束符了鸭,用的codeblock会把字符数组自动赋为全0吗