**8.4(计算每个雇员每周工作的小时数)假定所有雇员每周工作的小时数存储在一个二维数组中。1行包含7列,记录了一个雇员7天的工作小时数。编写一个程序,按照总工时降序显示

  • 题目
    • 题目描述
    • 破题
  • 代码
    • 运行实例

题目

题目描述

**8.4(计算每个雇员每周工作的小时数)假定所有雇员每周工作的小时数存储在一个二维数组中。1行包含7列,记录了一个雇员7天的工作小时数。例如,下面数组存储了8个雇员的工作小时数。编写一个程序,按照总工时降序显示雇员和他们的总工时

破题

  1. 新建一个8*7的二维数组,赋值
  2. 再新建一个长度为8的一维数组,存储每位员工工作小时数
  3. 创建一个int型对象存储工作小时数加和,赋初始值为0
  4. 双层循环语句遍历二维数组,行下标从0开始7结束 列下标从0开始6结束
  5. 循环体内(第一层内):赋第三步创建的存储加和对象值为0
  6. 循环体内(第二层内):对每行元素进行加和
  7. 循环体内(第一层内):将加和赋值给一维数组
  8. 新建另一个一维数组,长度等于第二步创建的一维数组
  9. 原一维数组复制给新创建的一维数组
  10. 对新一维数组进行排序
  11. 遍历新一维数组元素,与原有一维数组进行匹配,匹配到则输出雇员编号(原数组下标)和元素值,输出后则将元素值置0

代码

import java.util.Arrays;public class Test8_4 {public static void main(String[] args) {//1. 新建一个8*7的二维数组,赋值int[][] emplayees_workhours = {{2, 4, 3, 4, 5, 8, 8},{7, 3, 4, 3, 3, 4, 4},{3, 3, 4, 3, 3, 2, 2},{9, 3, 4, 7, 3, 4, 1},{3, 5, 4, 3, 6, 3, 8},{3, 4, 4, 6, 3, 4, 4},{3, 7, 4, 8, 3, 8, 4},{6, 3, 5, 9, 2, 7, 9},};int raw = emplayees_workhours.length;int col = emplayees_workhours[0].length;//2. 再新建一个长度为8的一维数组,存储每位员工工作小时数int[] emplayee_workhours_sum = new int[raw];//3. 创建一个int型对象存储工作小时数加和,赋初始值为0int sum = 0;//4. 双层循环语句遍历二维数组,行下标从0开始7结束 列下标从0开始6结束for (int a = 0 ; a < raw ; a++){//5. 循环体内(第一层内):赋第三步创建的存储加和对象值为0sum = 0;for (int b = 0 ; b < col ; b++){//6. 循环体内(第二层内):对每行元素进行加和sum += emplayees_workhours[a][b];}//7. 循环体内(第一层内):将加和赋值给一维数组emplayee_workhours_sum[a] = sum;}//8. 新建另一个一维数组,长度等于第二步创建的一维数组int[] copy = new int[raw];//9. 原一维数组复制给新创建的一维数组System.arraycopy(emplayee_workhours_sum, 0 , copy, 0, raw);//10. 对新一维数组进行排序Arrays.sort(copy);//11. 遍历新一维数组元素,匹配到则输出雇员编号(原数组下标)和元素值,输出后则将元素值置0for (int a = copy.length - 1 ; a >= 0 ; a--){//与原有一维数组进行匹配for (int b = 0 ; b < emplayee_workhours_sum.length ; b++){if (copy[a] == emplayee_workhours_sum[b]){System.out.println("Employee " + b + " 一周工作" + copy[a] + "小时");emplayee_workhours_sum[b] = 0;}}}}
}

运行实例

Employee 7 一周工作41小时
Employee 6 一周工作37小时
Employee 0 一周工作34小时
Employee 4 一周工作32小时
Employee 3 一周工作31小时
Employee 1 一周工作28小时
Employee 5 一周工作28小时
Employee 2 一周工作20小时

Java黑皮书课后题第8章:**8.4(计算每个雇员每周工作的小时数)假定所有雇员每周工作的小时数存储在一个二维数组中。1行包含7列,记录了一个雇员7天的工作小时数。编写一个程序,按照总工时降序显示相关推荐

  1. Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类)设计一个名为Person的类及其两个名为Student和Employee的子类

    Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类) 题目 缺陷 UML图 代码 Test02_MyDate.java:用于参考的My ...

  2. Java黑皮书课后题第10章:**10.25(新的字符串split方法)String类中的split方法会返回一个字符串数组,该数组是由分隔符分隔开的子串构成的

    Java黑皮书课后题第10章:**10.25(新的字符串split方法) 题目 代码 运行实例 题目 代码 public class Test25 {public static String[] sp ...

  3. Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字

    Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字 题目 代码 结果 题目 都在上面 代码 import java.math.B ...

  4. Java黑皮书课后题第10章:*10.13(几何:MyRectangle2D类)定义MyRectangle2D类

    Java黑皮书课后题第10章:10.3 题目 程序 代码 Test13.java Test13_MyRectangle2D.java 运行 UML 题目 程序 Test13.java:测试程序 Tes ...

  5. Java黑皮书课后题第10章:10.2(BMI类)将下面的新构造方法加入BMI类中

    Java黑皮书课后题第10章:10.2(BMI类)将下面的新构造方法加入BMI类中 题目 程序说明 题目槽点 代码:Test2_BMI.java 运行实例 题目 程序说明 Test2_BMI.java ...

  6. Java黑皮书课后题第10章:*10.1(Time类)设计一个名为Time的类。编写一个测试程序,创建两个Time对象(使用new Time()和new Time(555550000))

    Java黑皮书课后题第10章:*10.1设计一个名为Time的类.编写一个测试程序,创建两个Time对象 题目 程序 代码 Test1.java Test1_Time.java 运行结果 UML 题目 ...

  7. Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置。

    Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置 题目 破题 代码 Test13 Test13_Location 运行结果 ...

  8. Java黑皮书课后题第9章:**9.12(几何:交点)假设两条线段相交。第一条线段的两个端点是(x1, y1)和(x2, y2),第二条线段的两个端点是(x3, y3)和(x4, y4)

    Java黑皮书课后题第9章:**9.12(几何:交点)假设两条线段相交.第一条线段的两个端点是(x1, y1)和(x2, y2),第二条线段的两个端点是(x3, y3)和(x4, y4) 题目 破题 ...

  9. Java黑皮书课后题第9章:*9.11(代数:2*2的线性方程)为一个2*2的线性方程设计一个名为LinearEquation的类

    Java黑皮书课后题第9章:*9.11(代数:2*2的线性方程)为一个2*2的线性方程设计一个名为LinearEquation的类 题目 破题 代码 Test10 Test11_LinearEquat ...

最新文章

  1. 线性回归算法原理简介
  2. 使用verdaccio 搭建npm私有仓库
  3. 在C++项目中引入Lua(AlphaGo使用的方案)
  4. php后台无法登入,PHP magento后台无法登录问题解决方法
  5. mysql数据库入门教程(9):数据的常见约束
  6. hdu 3367 Pseudoforest (最大生成树 最多存在一个环)
  7. Ionic 自定义组件中使用 Ionic 官方组件
  8. camelcase_在Python中将字符串转换为camelCase
  9. 物联网大数据平台应具备的功能和特点
  10. python求度分布的程序
  11. 基于linux实现DNS互联网的搭建
  12. mysql新增表字段回滚_MySql学习笔记四
  13. finereport与finebi差别_Finereport和Finebi的区别
  14. iOS-OC-APP热更新,动态更新(仿QQ打开或关闭某个功能)
  15. Java 8 八年不倒、IntelliJ IDEA 力压 Eclipse,2022 年 Java 开发者都在用什么?
  16. mysql可以用docker部署吗_使用docker部署MySQL服务器
  17. jquery上传图片_MVC 上传图片,裁剪头像
  18. windows游戏编程大师技巧光盘
  19. 利用遗传算法GA和粒子群算法PSO优化算法,将BP神经网络训练集的MSE作为适应度函数
  20. FPGA:异步FIFO

热门文章

  1. 1581: 统计成绩-一题简单的坑题
  2. 开放下载!《深入浅出玩转物联网平台》
  3. python首行代码import *,from * import * 解析
  4. Unity进阶技巧 - 从文件读取游戏数据
  5. 【PHP7.2+】win10安装laravel(完整版,包含运行)
  6. 如何跟面试公司谈论薪资?
  7. 第一章 SDN介绍 (附件4)【 SDN的核心技术:【OpenFlow】】
  8. SpringBoot最简单服务配置
  9. 安装MySQL Workbench 6.3.4 CE (winx64)出错KERNELBASE.dll的解决方案
  10. 三星I9100[4.0 固件ROM] [2012.03.15]万众期待的欧版官方4.0.3完美汉化完美教程