U411934 统计分数plus+

本题为本人原创,请勿抄袭。

难度:普及/提高-

题目背景

在你的帮助下,老师成功地完成了成绩的统计。但是,教委又说要添加口语听说成绩,并且还要写出每科的排名和平均分。老师们有彻夜难眠。

题目描述

这是一题将结构体和排序结合在一起的题。

输入格式

  • 第一行,学生的数量。
  • 第二行,学生的名字。
  • 第三行,学生的语文、数学、英语听说、英语笔试、历史、生物、地理、政治、信息学奥林匹克竞赛成绩。

输出格式

  • 第一行,name:学生的名字。
  • 第二行,rank:学生的总排名。
  • 第三行,final_soccer:学生的总分。
  • 换行
  • 第……行,average_score:平均分

输入输出样例

输入 #1

2
xiaohuang
80 80 40 40 80 80 80 80
xiaorui
81 79 40 60 60 80 99 61

输出 #1

name:xiaorui
rank:1
final_soccer:560name:xiaohuang
rank:1
final_soccer:560average_score:560

 

说明/提示

  1. 提示
  • 1<n<10
  1. 说明
  • 会出现分数相等、总分相同的情况
  • 如果总分相同,先输出后输入的人的姓名,如样例1.

思路

很明显,这道题是一道将结构体和排序相结合的一道题。

首先,我们需要定义一个结构体,至于定义什么,题目要求什么就定义什么。

struct student{string name;int a,b,c,d,e,f,g,h;int s;int rank;int index; 
}a[11];

然后,我们将七科成绩存入结构体中。

for(int i=0;i<n;i++){cin>>a[i].name;cin>>a[i].a>>a[i].b>>a[i].c>>a[i].d>>a[i].e>>a[i].f>>a[i].g>>a[i].h;a[i].s=a[i].a+a[i].b+a[i].c+a[i].d+a[i].e+a[i].f+a[i].g+a[i].h;        }

接下来就是最重要的部分--排序。

bool cmp(student x,student y){return x.s<y.s;
}
sort(a,a+n,cmp);
for(int i=0;i<n;i++)a[i].rank=i;

 最后,题目要求:如果总分相同,先输出后输入的人的姓名。所以,我们可以用倒序输出来解决,如下:

for(int i=n-1;i>=0;i--){cout<<a[i].name<<endl;cout<<sum<<endl;cout<<a[i].s<<endl;if(a[i].s!=a[i-1].s)sum++;
}

 完整代码

#include<bits/stdc++.h>
using namespace std;
int n,sum=1,dum=0;
struct student{string name;int a,b,c,d,e,f,g,h;int s;int rank;int index; 
}a[11];
bool cmp(student x,student y){return x.s<y.s;
}
int main(){cin>>n;for(int i=0;i<n;i++){cin>>a[i].name;cin>>a[i].a>>a[i].b>>a[i].c>>a[i].d>>a[i].e>>a[i].f>>a[i].g>>a[i].h;a[i].s=a[i].a+a[i].b+a[i].c+a[i].d+a[i].e+a[i].f+a[i].g+a[i].h;		}sort(a,a+n,cmp);for(int i=0;i<n;i++)a[i].rank=i;for(int i=n-1;i>=0;i--){cout<<"name:"<<a[i].name<<endl;cout<<"rank:"<<sum<<endl;cout<<"final_soccer:"<<a[i].s<<endl;cout<<endl;if(a[i].s!=a[i-1].s)sum++;}for(int i=0;i<n;i++){dum=a[i].s+dum;}cout<<"average_score:"<<dum/n;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/730340.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unicloud where 使用

where介绍 在uniCloud中&#xff0c;WHERE是一个用于指定查询条件的关键字。它允许用户根据特定的条件来筛选和查询云数据库中的数据。WHERE语句的基本语法格式是WHERE condition&#xff0c;其中condition表示查询条件&#xff0c;可以是一个或多个逻辑表达式组成的条件。 在…

达梦数据库将DMHR模式下的表(迁移)导出为EXCEL文件

数据库迁移工具&#xff08;Data Transfer Service&#xff09;位于/dm8/tool/dts.其中/dm8是数据库安装目录。 在创建数据库时我们如果勾选了 “创建示例库DMHR(R)”&#xff0c;数据库实例中就带有这个数据库。 这里是用MobaXterm客户端远程控制ip地址为192.168.148.130的虚…

【C++】C++11---右值引用和移动语义

目录 1、什么是左值引用和右值引用2、左值引用与右值引用比较3、右值引用使用场景和意义4、右值引用引用左值的分析5、完美转发 1、什么是左值引用和右值引用 传统的C语法中就有引用的语法&#xff0c;而C11中新增了的右值引用语法特性&#xff0c;所以从现在开始我们之前学习…

Xilinx 7系列 FPGA硬件知识系列(九)——FPGA的配置

目录 1 .1配置模式 1.1.1 主模式 1.1.2 从模式 1.2 7种配置模式 1.2.1 主串配置模式 1.2.2 从串配置模式 ​编辑1.2.3 主并配置模式 1.2.4 从并配置模式 1.2.5 JTAG配置模式 ​编辑1.2.6 主SPI配置模式 ​编辑1.2.7 主BPI配置模式 1.2.8 FPGA BPI加载时间…

详解float函数类型转换

函数描述 float([x]) 函数将数字或数字的字符串表示形式转换为与它等效的有符号浮点数。如果参数x是一个字符串&#xff08;十进制表示的数字串&#xff09;&#xff0c;数字前面可以添加符号来表示正数&#xff0c;或负数。符号和数字之间不能出现空格&#xff0c;但是符号前…

JavaScript 运算规则详解

在 JavaScript 中&#xff0c;运算规则是非常重要的基础知识&#xff0c;了解这些规则可以帮助我们正确地编写代码并避免一些常见的错误。本教程将详细介绍 JavaScript 中的各种运算规则&#xff0c;包括基本运算符、类型转换、运算优先级等内容。 1. 基本运算符 JavaScript …

【Linux基础(三)】信号

学习分享 1、信号的基本概念2、查看信号列表3、常见信号名称4、signal库函数5、发送信号kill6、kill - signal &#xff08;无参信号&#xff09;示例6.1、kill - signal (不可靠信号)示例6.2、kill - signal (可靠信号)示例 7、信号分类7.1、信号运行原理分类7.2、信号是否携带…

JAVA 方法的使用

目录 方法 导入参数可以有多个 返回多个参数 方法的重载 方法的继承 方法 一个方法分为访问修饰符&#xff0c;关键字&#xff0c;返回类型&#xff0c;方法名&#xff0c;以及导入参数 示例 public static void main(String[] args) {} 解释&#xff1a;其中public是访问修饰…

java-抢红包一些简单概念

抢红包&#xff0c;比如微信中抢红包&#xff0c;红包金额分配使用的是二倍均值算法。 二倍均值拆包&#xff1a; 拆包要求:所有人抢到的金额之和等于红包总额&#xff0c;每个人最少抢到 0.01 元&#xff0c;每个人抢到的红包金额不要相差太大二倍均值法:假设红包总金额是X&…

【Spring云原生系列】Spring RabbitMQ:异步处理机制的基础--消息队列 原理讲解+使用教程

&#x1f389;&#x1f389;欢迎光临&#xff0c;终于等到你啦&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;持续更新的专栏《Spring 狂野之旅&#xff1a;从入门到入魔》 &a…

3DES算法的起源与演进:保障信息安全的重要里程碑

title: 3DES算法的起源与演进&#xff1a;保障信息安全的重要里程碑 date: 2024/3/8 21:25:19 updated: 2024/3/8 21:25:19 tags: 3DES算法起源安全性增强三次迭代加密密钥管理复杂效率对比AES应用场景广泛Python实现示例 一、3DES算法的起源与演进 3DES算法是DES算法的增强版…

Linux第72步_使用“新字符设备的一般模板”编写LED驱动

使用“新字符设备的一般模板”编写LED驱动&#xff0c;使用寄存器直接开关灯。 1、创建LED目录 输入“cd /home/zgq/linux/Linux_Drivers/回车” 切换到“/home/zgq/linux/Linux_Drivers/” 输入“ls回车”&#xff0c;查看“/home/zgq/linux/Linux_Drivers/” 输入“mkdi…

IDEA自带 .http 请求工具文档

基础语法 请求格式 基础格式 Method Request-URI HTTP-Version Header-field: Header-valueRequest-Body其中&#xff0c;GET 请求可以省略 Method 不写&#xff1b;HTTP-Version 可以省略不写&#xff0c;默认使用 1.1 版本。 示例&#xff1a; GET https://www.baidu.co…

【LaTeX】行内代码块、行间代码块的插入以及高亮(懒人版)

文章目录 思路和优点基本框架行内代码行间代码pythoncpp 所支持的语言所支持的代码风格 思路和优点 思路是listingsminted包&#xff0c; 一个负责插入代码一个负责高亮代码 这种方法显著的优点在于&#xff1a;完全不需要自定义代码风格 使用其他方法时&#xff0c;你定义好…

组合逻辑电路(二)(译码器和编码器)

目录 译码器 简单逻辑门译码器 二进制译码器 2线-4线译码器 3线-8线译码器 二-十进制译码器 4线-10线译码器 七段显示译码器 编码器 二进制普通编码器 二-十进制普通编码器&#xff08;8421BCD码编码器&#xff09; 优先编码器&#xff08;Priority Encoder&#xff09; 译…

httprunner参数化

1. 示例 引入对应的Parameters 1.1. CSV参数 from httprunner import HttpRunner, Config, Step, RunRequest, Parameters pytest.mark.parametrize("param", Parameters({"mobile_phone-pwd": "${P(csv_data/mobile_phone-pwd.csv)}"}))def …

【粉丝福利】探秘内部审计数字化之道:精准解析转型方法与成功路径

&#x1f33c;前言 内部审计是一种独立的、客观的确认和咨询活动&#xff0c;包括鉴证、识别和分析问题以及提供管理建议和解决方案。狭义的数字化转型是指将企业经营管理和业务操作的各种行为、状态和结果用数字的形式来记录和存储&#xff0c;据此再对数据进行挖掘、分析和应…

基于textdistance计算文本相似度

textdistance是Python的第三方库&#xff0c;用于计算文本之间的相似度或距离。它提供了30个算法&#xff0c;简单易用。 安装 pip install textdistance# 使用扩展库&#xff0c;提高性能 pip install "textdistance[extras]"使用 import textdistance# 计算编辑…

多目标跟踪中的数据关联

多目标追踪之数据关联多目标跟踪数据关联算法比较 在单目标无杂波环境下&#xff0c;目标的相关波门内只有一个点迹&#xff0c;此时只涉及跟踪问题。 在多目标情况下&#xff0c;有可能出现单个点迹落入多个波门的相交区域内&#xff0c;或者多个点迹落入单个目标的相关波门内…

本鲸多方位助力创业者高效对接创新创业机遇

在科技创新的浪潮中&#xff0c;创业者们不断探索着新的商业机会&#xff0c;寻求着创新创业的道路。然而&#xff0c;面对复杂多变的市场环境和激烈的竞争压力&#xff0c;如何高效对接创新创业机遇成为了摆在创业者面前的重要课题。 本鲸依托海南本鲸投资有限公司和重庆本鲸…