```cpp
#include <stdio.h>
#include <string.h>
struct test
{
char name[9];
int chin;
int math;
int eng;
};
char na[9];
int n, max=-1, ch, ma, en;
int main()
{
scanf("%d", &n);
for (int k = 0; k < n; k++)
{
struct test store;
int sum;
scanf("%s", store.name);
scanf("%d%d%d", &store.chin, &store.math, &store.eng);
sum = store.chin + store.math + store.eng;
if (sum > max)
{
max = sum;
strcpy(na, store.name);
ch = store.chin;
ma = store.math;
en = store.eng;
}
}
printf("%s ", na);
printf("%d %d %d", ch, ma, en);
return 0;
}
```
推测是因为$na$末尾会有残余数据导致$WA$
by Mr_Gengar @ 2022-09-17 18:00:52
@[Langrange2021](/user/593001)
by Mr_Gengar @ 2022-09-17 18:01:12
@[Infi_nut](/user/661135)
我过了,谢谢dl。我可以请教一下吗?
为什么我的那种用循环输出的方法不对,用strcpy函数就对了呢?
by Langrange2021 @ 2022-09-17 18:14:22
@[Langrange2021](/user/593001)
```c
if (store.name[q] == '\0')
{
break;
}
```
复制字符串时没把 0 一同复制过去,输出时就越界了。
by ud2_ @ 2022-09-17 18:22:23
@[ud2_](/user/206953) 正解
by Mr_Gengar @ 2022-09-17 18:39:39