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

你可能感兴趣的文章
NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
查看>>
NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061
查看>>
NIH发布包含10600张CT图像数据库 为AI算法测试铺路
查看>>
Nim教程【十二】
查看>>
Nim游戏
查看>>
NIO ByteBuffer实现原理
查看>>
Nio ByteBuffer组件读写指针切换原理与常用方法
查看>>
NIO Selector实现原理
查看>>
nio 中channel和buffer的基本使用
查看>>
NIO_通道之间传输数据
查看>>
NIO三大组件基础知识
查看>>
NIO与零拷贝和AIO
查看>>
NIO同步网络编程
查看>>
NIO基于UDP协议的网络编程
查看>>
NIO笔记---上
查看>>
NIO蔚来 面试——IP地址你了解多少?
查看>>
NISP一级,NISP二级报考说明,零基础入门到精通,收藏这篇就够了
查看>>
NISP国家信息安全水平考试,收藏这一篇就够了
查看>>
NIS服务器的配置过程
查看>>
NIS认证管理域中的用户
查看>>