最高成绩的输出(结构体)
题目描述 从键盘输入若干个学生的信息,每个学生信息包括学号、姓名、3门课的成绩,计算每个学生的总分,输出总分最高的学生的信息。 输入 首先输入一个整数n(1<=n<=100),表示学生人数,然后输入n行,每行包含一个学生的信息:学号(12位)、姓名(不含空格且不超过20位),以及三个整数,表示语文、数学、英语三门课成绩,数据之间用空格隔开。 输出 输出总成绩最高的学生的学号、姓名、及三门课成绩,用空格隔开。若有多个最高分,只输出第一个。
样例输入 3 541207010188 Zhangling 89 78 95 541207010189 Wangli 85 87 99 541207010190 Fangfang 85 68 76 样例输出 541207010189 Wangli 85 87 99
# include<stdio.h> typedef struct student { char ID[13]; char name[21]; int a; int b; int c; int score; } STUDENT; int main(void) { STUDENT stu[101],first; first.score = -1; int n,i; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%s",stu[i].ID); scanf("%s",stu[i].name); scanf("%d",&stu[i].a ); scanf("%d",&stu[i].b ); scanf("%d",&stu[i].c ); } for(i=0;i<n;i++) { stu[i].score=stu[i].a+stu[i].b+stu[i].c; } for(i=0;i<n;i++) { if(stu[i].score > first.score ) first=stu[i]; } printf("%s",first.ID ); printf(" %s",first.name ); printf(" %d",first.a ); printf(" %d",first.b ); printf(" %d",first.c ); return 0; }
在使用结构体时,不能让结构体内的定义的变量自己定义自己的变化,我们可以定义结构数组,让结构数组经历循环,使结构内的变量发生变化。