博客
关于我
程序设计入门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 配置https(一)—— 自签名证书
查看>>
nginx 配置~~~本身就是一个静态资源的服务器
查看>>
Nginx 配置服务器文件上传与下载
查看>>
Nginx 配置清单(一篇够用)
查看>>
Nginx 配置解析:从基础到高级应用指南
查看>>
Nginx 集成Zipkin服务链路追踪
查看>>
nginx 集群配置方式 静态文件处理
查看>>
nginx+php的搭建
查看>>
nginx+tomcat+memcached
查看>>
Nginx+Tomcat实现动静分离
查看>>
nginx+Tomcat性能监控
查看>>
nginx+uwsgi+django
查看>>
nginx+vsftp搭建图片服务器
查看>>
Nginx-http-flv-module流媒体服务器搭建+模拟推流+flv.js在前端html和Vue中播放HTTP-FLV视频流
查看>>
nginx-vts + prometheus 监控nginx
查看>>
nginx: [emerg] getpwnam(“www”) failed 错误处理方法
查看>>
nginx:Error ./configure: error: the HTTP rewrite module requires the PCRE library
查看>>
Nginx、HAProxy、LVS
查看>>
Nginx下配置codeigniter框架方法
查看>>
Nginx中使用expires指令实现配置浏览器缓存
查看>>