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
请不要在任何一个函数内随意定义变量而且不赋初值,这样子的话变量值为一个随机值。
当你把他放在外面时,编译器会默认赋初值为
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 噢噢噢三克油