测试感觉没问题鸭就是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吗