不知道为啥这个不对,dl可以帮我指正一下吗?

P5740 【深基7.例9】最厉害的学生

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 教教我吧(呜呜~)


| 下一页