题目描述
有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩)
输入格式
学生数量N占一行每个学生的学号、姓名、三科成绩占一行,空格分开。
输出格式
各门课的平均成绩 最高分的学生的数据(包括学号、姓名、3门课成绩)
样例输入
2 1 blue 90 80 70 b clan 80 70 60样例输出
85 75 65 1 b# include <stdio.h> struct student { char ID[100]; char name[100]; int score[3]; }; struct student str[100]; void input(int n) //读入数据 { for (int i = 0 ; i < n ; i++) { scanf("%s %s %d %d %d",&str[i].ID,&str[i].name,&str[i].score[0],&str[i].score[1],&str[i].score[2]); } } void average(int n) //求平均数 { int sum1 = 0,sum2 = 0,sum3 = 0; for (int i = 0 ; i < n ; i++) { sum1+=str[i].score[0]; sum2+=str[i].score[1]; sum3+=str[i].score[2]; } printf("%d %d %d\n",sum1/n,sum2/n,sum3/n); } void max(int n) //比较成绩大小 { int max = str[0].score[0]+str[0].score[1]+str[0].score[2]; int t = 0; for (int i = 1 ; i < n ; i++) { if (str[i].score[0]+str[i].score[1]+str[i].score[2] > max) { max = str[i].score[0]+str[i].score[1]+str[i].score[2]; t = i; } } if (t == 0) printf("%s %s %d %d %d\n",str[0].ID,str[0].name,str[0].score[0],str[0].score[1],str[0].score[2]); else printf("%s %s %d %d %d\n",str[t].ID,str[t].name,str[t].score[0],str[t].score[1],str[t].score[2]); } int main () { int n; scanf("%d",&n); input(n); average(n); max(n); return 0; }
lue 90 80 70
C语言--编程入门]结构体之成绩统计2
最新推荐文章于 2024-05-10 09:36:12 发布