Langrange2021 @ 2022-09-17 17:20:23
#include <stdio.h>
#include <string.h>
struct test
{
char name[9];
int chin;
int math;
int eng;
};
int main()
{
int max=0;
int N;
scanf("%d", &N);
char na[9];
int ch=0;
int ma=0;
int en=0;
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;
for (int q = 0; q < 9; q++)
{
if (store.name[q] == '\0')
{
break;
}
na[q] = store.name[q];
}
ch = store.chin;
ma = store.math;
en = store.eng;
}
}
for (int y = 0; y < 9; y++)
{
if (na[y] == '\0')
{
break;
}
printf("%c", na[y]);
}
printf(" ");
printf("%d %d %d", ch, ma, en);
return 0;
}
by 初星逝者 @ 2022-09-17 17:28:10
@Langrange2021 请读题:如果有多个总分相同的学生,输出靠前的那位
by 初星逝者 @ 2022-09-17 17:30:02
当所有学生的成绩都等于max
原本的值时呢
by Adchory @ 2022-09-17 17:30:26
@初星逝者 他确实读题了
by 初星逝者 @ 2022-09-17 17:32:16
@Reimu_Hakurei 当我第一句话没说
by Adchory @ 2022-09-17 17:32:46
@Langrange2021 应该是字符串读入输出有问题,建议用 strlen()
表示字符串长度,或者 string
,bdfs
by Langrange2021 @ 2022-09-17 17:35:30
@初星逝者 dl,可是我用sum>max而不是>=,这样不就可以表示输出靠前的那位吗?
by 初星逝者 @ 2022-09-17 17:36:52
@Langrange2021 不是说了当我第一句话没说
吗,那当所有学生的成绩是0呢
by Langrange2021 @ 2022-09-17 17:39:09
@Reimu_Hakurei dl,我之前用过strlen,但是还是不对
by Langrange2021 @ 2022-09-17 17:40:46
@初星逝者 我刚刚改过了,就只是多ac了一个
by Langrange2021 @ 2022-09-17 17:41:19
@Reimu_Hakurei 教教我吧(呜呜~)