20分,求帮助(倒下)

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

nulidexiaozhou @ 2024-06-20 11:15:25

代码如下

#include<stdio.h>
typedef struct{
    char name[100];
    int chi;
    int math;
    int eng;
} stu;
int main()
{
    int n;
    stu s[1000];
    int arr[1000];
    int flat=0;
    scanf("%d", &n);
    for (int i = 0; i < n; i++)
    {
        scanf("%s%d%d%d", s[i].name, &s[i].chi, &s[i].math, &s[i].eng);
    }
    for (int i = 0; i < n; i++)
    {
        int sum = s[i].chi + s[i].math + s[i].eng;
        arr[i] = sum;
    }
    for (int i = 0; i < n; i++)
    {
        int max = arr[0];
        if (max < arr[i])
        {
            max = arr[i];
            flat = i;
        }
    }
    printf("%s %d %d %d", s[flat].name, s[flat].chi, s[flat].math, s[flat].eng);
    return 0;
}

by Chenyichen0420 @ 2024-06-20 11:27:08

请不要在任何一个函数内随意定义变量而且不赋初值,这样子的话变量值为一个随机值。

当你把他放在外面时,编译器会默认赋初值为 0


by Chenyichen0420 @ 2024-06-20 11:28:59

还应当注意,在一个函数内定义过多或过大的变量与数组后,在本地运行时容易爆栈。


by kevinZ99 @ 2024-06-21 08:20:47

如下这句应该放到for循环之外

int max = arr[0];

by nulidexiaozhou @ 2024-06-21 15:43:26

@kevinZ99 噢噢噢三克油


|