当前位置: 首页 > news >正文

scala中如何解决乘机排名相关的问题

任务目标: 1.计算每个同学的总分和平均分

2.按总分排名,取前三名

3.按单科排名,取前三名

好的,我们可以用Scala来完成这个任务。下面是一个简单的示例代码,它将演示如何实现这些功能:

// 假设我们有一个学生成绩的列表,每个学生的成绩是一个包含姓名和三科成绩的元组
val scores = List(("张三", 85, 90, 75),("李四", 90, 85, 95),("王五", 75, 80, 90),("赵六", 80, 75, 85)
)// 1. 计算每个同学的总分和平均分
val totalAndAverageScores = scores.map { case (name, math, english, physics) =>val total = math + english + physicsval average = total.toDouble / 3(name, total, average)
}// 打印每个同学的总分和平均分
totalAndAverageScores.foreach { case (name, total, average) =>println(s"$name, 总分: $total, 平均分: $average")
}// 2. 按总分排名,取前三名
val topThreeByTotal = totalAndAverageScores.sortBy(- _.2).take(3)// 打印总分排名前三的学生
println("总分排名前三的学生:")
topThreeByTotal.foreach { case (name, total, average) =>println(s"$name: 总分 $total")
}// 3. 按单科排名,取前三名
// 数学
val topThreeMath = scores.sortBy(- _._2).take(3)
// 英语
val topThreeEnglish = scores.sortBy(- _._3).take(3)
// 物理
val topThreePhysics = scores.sortBy(- _._4).take(3)// 打印单科排名前三的学生
println("\n数学排名前三的学生:")
topThreeMath.foreach { case (name, math, _, _) => println(s"$name: $math") }println("\n英语排名前三的学生:")
topThreeEnglish.foreach { case (name, _, english, _) => println(s"$name: $english") }println("\n物理排名前三的学生:")
topThreePhysics.foreach { case (name, _, _, physics) => println(s"$name: $physics") }

这段代码首先定义了一个包含学生姓名和三科成绩的列表。然后,它计算每个学生的总分和平均分,并打印出来。接着,它按照总分对学生进行排序,并打印出总分排名前三的学生。最后,它分别对数学、英语和物理三科成绩进行排序,并打印出每个科目排名前三的学生。

http://www.lryc.cn/news/501928.html

相关文章:

  • OpenCV相机标定与3D重建(10)眼标定函数calibrateHandEye()的使用
  • Hadoop生态圈框架部署(九-2)- Hive HA(高可用)部署
  • docker 相关操作
  • AI作图效率高,亲测ToDesk、顺网云、青椒云多款云电脑AIGC实践创作
  • 【代码随想录day57】【C++复健】 53. 寻宝(prim算法);53. 寻宝(kruskal算法)
  • C++中多态
  • 【实现多网卡电脑的网络连接共享】
  • 算力介绍与解析
  • 解决 MyBatis 中空字符串与数字比较引发的条件判断错误
  • python 词向量的代码解读 self.word_embeds = nn.Embedding(vocab_size, embedding_dim) 解释下
  • 记一次:使用C#创建一个串口工具
  • Android Studio新版本的一个资源id无法找到的bug解决
  • Datawhale AI冬令营(第一期)--零基础定制你的专属大模型
  • LLMs之APE:基于Claude的Prompt Improver的简介、使用方法、案例应用之详细攻略
  • 【Unity人形布娃娃插件】Ragdoll Animator
  • 跨团队协作中目标一致性至关重要
  • Excel的文件导入遇到大文件时
  • 使用字典进行动态编程
  • 机器学习02-发展历史补充
  • 全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之计数器与累加器(一)
  • Android的SurfaceView和TextureView介绍
  • Scala的集合
  • 1. Flink自定义Source
  • 关于LinuxWindows双系统在八月更新后出现的问题
  • VMware:如何在CentOS7上开启22端口
  • ubuntu远程桌面开启opengl渲染权限
  • 从小学题到技术选型哲学:以智能客服系统为例,解读相关AI技术栈20241211
  • 【C语言练习(5)—回文数判断】
  • 【Rust 学习笔记】Rust 基础数据类型介绍——数组、向量和切片
  • 2024年特别报告,「十大生活方式」研究数据报告