原题链接:[编程入门]结构体之成绩统计2
参考代码:
#include<stdio.h>
typedef struct Students{ // 指定用Sd代表struct Students
char nab[20]; // 学号
char nam[20]; // 姓名
float A; // A课成绩
float B; // B课成绩
float C; // C课成绩
float nap; // 该学生三科平均分
}Sd;
void printSd(Sd std);
int main(){
int N,i,maxNap=0,maxi; // N学生个数,maxNap
float Aap=0,Bap=0,Cap=0; // A、B、C三科平均分
scanf("%d", &N);
Sd s[N]; // 结构体个数
for(i=0; i<N; i++){ // 为s[N]赋值
scanf("%s %s %f %f %f", &s[i].nab,&s[i].nam,&s[i].A,&s[i].B,&s[i].C);
s[i].nap = (s[i].A+s[i].B+s[i].C)/3; // 计算各科平均分
Aap += s[i].A; // 求单科相加总分
Bap += s[i].B;
Cap += s[i].C;
}
for(i=0; i<N; i++){
if(s[i].nap >= maxNap){
maxNap = s[i].nap; // 求学生中平均数最大的的
maxi = i; // 储存最大平均值学生的s[N]为maxi
}
}
printf("%.0f %.0f %.0f\n", Aap/N,Bap/N,Cap/N); // 输出各科平均分
printSd(s[maxi]); // 传入最大平均分的学生的s[N]
}
void printSd(Sd std){
printf("%s %s %.0f %.0f %.0f\n", std.nab,std.nam,std.A,std.B,std.C);
}0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复