JJQ419875574 @ 2022-01-04 23:44:55
int main(){
typedef struct{
char name[20];
int chi;
int math;
int egl;
int sum;
}students;
students stu[1010];
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%s %d %d %d",stu[i].name,&stu[i].chi,&stu[i].math,&stu[i].egl);
stu[i].sum=stu[i].chi+stu[i].math+stu[i].egl;
}
//compare
int maxn=stu[1].sum;
int max=1;
for(int j=1;j<=n;j++){
if(stu[j].sum>maxn){
max=j;
}
}
printf("%s %d %d %d",stu[max].name,stu[max].chi,stu[max].math,stu[max].egl);
}
by ud2_ @ 2022-01-04 23:54:39
maxn
一直是 stu[1].sum
。
by wanan2203ouchengli @ 2023-07-26 14:43:22
1.数组的话下标应该是从0开始的
2.这一步
if(stu[j].sum>maxn)
{ max=j; }
再找到大于maxn的数之后,你只是记录了他的下标,没有更新maxn的值,对后面的比较没有意义