博客
关于我
程序设计入门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/

你可能感兴趣的文章
Network Sniffer and Connection Analyzer
查看>>
Network 灰鸽宝典【目录】
查看>>
Networkx写入Shape文件
查看>>
NetworkX系列教程(11)-graph和其他数据格式转换
查看>>
Networkx读取军械调查-ITN综合传输网络?/读取GML文件
查看>>
network小学习
查看>>
Netwox网络工具使用详解
查看>>
Net与Flex入门
查看>>
net包之IPConn
查看>>
net发布的dll方法和类显示注释信息(字段说明信息)[图解]
查看>>
Net操作配置文件(Web.config|App.config)通用类
查看>>
NeurIPS(神经信息处理系统大会)-ChatGPT4o作答
查看>>
neuroph轻量级神经网络框架
查看>>
Neutron系列 : Neutron OVS OpenFlow 流表 和 L2 Population(7)
查看>>
NEW DATE()之参数传递
查看>>
New Relic——手机应用app开发达人的福利立即就到啦!
查看>>
new 一个button 然后dispose,最后这个button是null吗???
查看>>
next项目部署到服务器pm2进程守护
查看>>
nexus上传jar
查看>>
Nexus指南中的更新强调集成和透明度的重要性
查看>>