博客
关于我
程序设计入门14 结构体
阅读量:391 次
发布时间:2019-03-05

本文共 2027 字,大约阅读时间需要 6 分钟。

以下是解决该问题的优化代码:

    学生数据处理    

问题描述

有10个学生,每个学生的数据包括学号、姓名和3门课程的成绩。读入这10个学生的数据,要求输出3门课程的总平均成绩,以及个人平均分最高的学生的数据(包括学号、姓名、3门课程成绩、平均分数)。

输入

共有10行,每行包含一个学生的学号(整数)、名字(长度不超过19的无空格字符串)和3门课程的成绩(0至100之间的整数),用空格隔开。

输出

第一行包含了3个实数,分别表示3门课程的总平均成绩,保留2位小数,每个数之后输出一个空格。

第二行输出个人平均分最高的学生的数据,与输入数据格式相同。如果有多位个人平均分最高的学生,输出按照输入顺序第一个最高分的学生数据。

样例输入

101 AAA 80 81 82102 BBB 83 84 85103 CCC 86 87 88104 DDD 89 90 91105 EEE 92 93 94106 FFF 80 90 100107 GGG 85 90 95108 HHH 80 85 90109 III 90 91 92110 JJJ 91 88 87

样例输出

86.60 87.90 90.40105 EEE 92 93 94

代码实现

#include 
#include
using namespace std;struct Student { int num; char name[20]; int score1, score2, score3;};void readStudent(struct Student* stu) { scanf("%d", &stu->num); scanf("%s", stu->name); scanf("%d", &stu->score1); scanf("%d", &stu->score2); scanf("%d", &stu->score3);}int main() { struct Student stu[10]; for (int i = 0; i < 10; ++i) { readStudent(stu + i); } // 计算总平均成绩 double sum1 = 0, sum2 = 0, sum3 = 0; for (int i = 0; i < 10; ++i) { sum1 += stu[i].score1; sum2 += stu[i].score2; sum3 += stu[i].score3; } double avg1 = sum1 / 10; double avg2 = sum2 / 10; double avg3 = sum3 / 10; printf("%.2f %.2f %.2f\n", avg1, avg2, avg3); // 找出平均分最高的学生 int max_avg = -1; int max_index = 0; for (int i = 0; i < 10; ++i) { int total = stu[i].score1 + stu[i].score2 + stu[i].score3; double avg = static_cast
(total) / 3.0; if (avg > max_avg) { max_avg = avg; max_index = i; } } struct Student max_student = stu[max_index]; printf("%d %s %d %d %d\n", max_student.num, max_student.name, max_student.score1, max_student.score2, max_student.score3); return 0;}

思想:通过定义结构体存储学生信息,逐行读取输入数据并存储。计算各科目总成绩,求出总平均成绩。再遍历学生数据,计算每个学生的平均分,找出最高分的学生数据。

转载地址:http://calwz.baihongyu.com/

你可能感兴趣的文章
nginx转发端口时与导致websocket不生效
查看>>
Nginx运维与实战(二)-Https配置
查看>>
Nginx部署_mysql代理_redis代理_phoenix代理_xxljob代理_websocket代理_Nacos代理_内网穿透代理_多系统转发---记录021_大数据工作笔记0181
查看>>
Nginx配置HTTPS服务
查看>>
Nginx配置Https证书
查看>>
Nginx配置http跳转https
查看>>
Nginx配置ssl实现https
查看>>
Nginx配置TCP代理指南
查看>>
NGINX配置TCP连接双向SSL
查看>>
Nginx配置——不记录指定文件类型日志
查看>>
nginx配置一、二级域名、多域名对应(api接口、前端网站、后台管理网站)
查看>>
nginx配置中的服务器名称
查看>>
Nginx配置代理解决本地html进行ajax请求接口跨域问题
查看>>
nginx配置全解
查看>>
Nginx配置参数中文说明
查看>>
Nginx配置后台网关映射路径
查看>>
nginx配置域名和ip同时访问、开放多端口
查看>>
Nginx配置多个不同端口服务共用80端口
查看>>
Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
查看>>
Nginx配置如何一键生成
查看>>