Java黑皮书课后题第7章:**7.17(对学生排序)编写一个程序,提示用户输入学生个数、学生姓名和他们的成绩,然后按照学生成绩的降序打印学生的姓名。假定姓名是不包含空格的字符,使用next()读取
**7.17(对学生排序)编写一个程序,提示用户输入学生个数、学生姓名和他们的成绩,然后按照学生成绩的降序打印学生的姓名。假定姓名是不包含空格的字符,使用next方法读取
- 题目
- 题目描述
- 破题
- 代码
- 运行实例
题目
题目描述
**7.17(对学生排序)编写一个程序,提示用户输入学生个数、学生姓名和他们的成绩,然后按照学生成绩的降序打印学生的姓名。假定姓名是不包含空格的字符,使用next()读取
破题
- 主方法:获取学生个数,作为姓名和成绩两个数组的长度
- 主方法:使用for循环获取学生姓名和成绩,学生姓名与成绩交替获取,并赋值给两个数组的对应位置
- 主方法:调用自定义方法sort(),传入两个数组并进行排序,返回值是排序后成绩对应的姓名数组
- sort方法:在对成绩数组进行排序(交换位置)的同时,对姓名也做同样交换位置的操作
- 主方法:输出返回的数组
代码
import java.util.Arrays;
import java.util.Scanner;public class Test7_17 {public static void main(String[] args) {//1. 主方法:获取学生个数,作为姓名和成绩两个数组的长度Scanner input = new Scanner(System.in);System.out.print("输入学生个数:");int length = input.nextInt();//1+. 声明两个数组String[] names = new String[length];int[] scores = new int[length];//2. 主方法:使用for循环获取学生姓名和成绩,学生姓名与成绩交替获取,并赋值给两个数组的对应位置System.out.print("输入姓名成绩:");for (int i = 0 ; i < length ; i++){names[i] = input.next();scores[i] = input.nextInt();}//3. 主方法:调用自定义方法sort(),传入两个数组并进行排序,返回值是排序后成绩对应的姓名数组String[] names_feedback = new String[length];names_feedback = sort(names, scores);//5. 主方法:输出返回的数组System.out.print(Arrays.toString(names_feedback));}//4. sort方法:在对成绩数组进行排序(交换位置)的同时,对姓名也做同样交换位置的操作public static String[] sort(String[] names, int[] scores){//1. 声明一个String数组(names_feedback)用于返回姓名String[] names_feedback = new String[names.length];//2. 使用for循环控制遍历int index = -1; // 保存最大值下标for (int i = 0 ; i < names.length ; i++) {//调用自定义方法list_max(),传入scores数组并接收除负数外最大值的下标index = list_max(scores);//上面接收到的最大值下标index,此时for循环为第i+1次//names_feedback[i]=names[index]; 同时将scores[index]=-1names_feedback[i]=names[index];scores[index]=-1;}//3. 返回names_feedback数组return names_feedback;}//4+ 自定义方法list_max(),传入scores数组并接收除负数外最大值的下标public static int list_max(int[] scores){// 保存最大值的变量temp_max和最大值的下标temp_indexint temp_max = 0, temp_index = -1;// 获取scores长度为lengthint length = scores.length;// 使用for循环获取最大值(负数不计)for (int i = 0 ; i < length ; i++){if (temp_max < scores[i] && scores[i] >= 0){temp_max = scores[i];temp_index = i;}}// 返回保存的最大值下标temp_indexreturn temp_index;}
}
运行实例
输入学生个数:3
输入姓名成绩:zhang 96 wang 95 li 94
[zhang, wang, li]
Java黑皮书课后题第7章:**7.17(对学生排序)编写一个程序,提示用户输入学生个数、学生姓名和他们的成绩,然后按照学生成绩的降序打印学生的姓名。假定姓名是不包含空格的字符,使用next()读取相关推荐
- Java黑皮书课后题第5章:*5.46(倒排一个字符串)编写一个程序,提示用户输入一个字符串,然后以反序显示该字符串
5.46(倒排一个字符串)编写一个程序,提示用户输入一个字符串,然后以反序显示该字符串 题目 题目概述 破题 运行示例 代码 题目 题目概述 5.46(倒排一个字符串)编写一个程序,提示用户输入一个字 ...
- Java黑皮书课后题第11章:11.1(Triangle类)设计一个名为Triangle的类来继承GeometricObject类。该类包括:
画出Triangle类和GeometricObject类的UML图,并实现这些类.编写一个测试程序,提示用户输入三角形的三条边.颜色以及一个boolean值表明该三角形是否填充.程序需要根据输入创建一 ...
- Java黑皮书课后题第2章:*2.8(当前时间)程序清单2-7给出了显示当前格林尼治时间的程序。修改这个程序,提示用户输入相对于GMT的时区偏移量,显示在这个特定时区的时间
*2.8(当前时间)程序清单2-7给出了显示当前格林尼治时间的程序.修改这个程序,提示用户输入相对于GMT的时区偏移量,显示在这个特定时区的时间 题目 题目描述 运行示例 程序清单2-7(非本题代码) ...
- Java黑皮书课后题第10章:*10.26(计算器)修改程序清单7-9,接收一个字符串表达式,其中操作符和操作数由0到多个空格隔开
第10章:*10.26(计算器) 题目 程序清单7-9 本题代码:大幅优化升级 题目 程序清单7-9 对代码进行了修改:原代码将"."认做乘号,修改后将"*"作 ...
- Java黑皮书课后题第5章:5.2(重复加法)程序清单5-4产生了5个随机减法问题。改写该程序,使它产生10个随机加法问题,加数时两个1到15之间的整数。显示正确答案的个数和完成测试的时间
5.2(重复加法)程序清单5-4产生了5个随机减法问题.改写该程序,使它产生10个随机加法问题,加数时两个1到15之间的整数.显示正确答案的个数和完成测试的时间 题目 题目概述 程序清单5-4 破题 ...
- Java黑皮书课后题第5章:*5.16(找出一个整数的因子)编写程序,读入一个整数,然后以升序显示它的所有最小因子。例如,若输入的整数是120,那么输出就应该是:2、2、2、3、5
*5.16(找出一个整数的因子)编写程序,读入一个整数,然后以升序显示它的所有最小因子.例如,若输入的整数是120,那么输出就应该是:2.2.2.3.5 题目 题目概述 代码:[点击这里快速跳转推荐方 ...
- 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 ...
- Java黑皮书课后题第10章:**10.25(新的字符串split方法)String类中的split方法会返回一个字符串数组,该数组是由分隔符分隔开的子串构成的
Java黑皮书课后题第10章:**10.25(新的字符串split方法) 题目 代码 运行实例 题目 代码 public class Test25 {public static String[] sp ...
- 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 ...
- Java黑皮书课后题第10章:*10.13(几何:MyRectangle2D类)定义MyRectangle2D类
Java黑皮书课后题第10章:10.3 题目 程序 代码 Test13.java Test13_MyRectangle2D.java 运行 UML 题目 程序 Test13.java:测试程序 Tes ...
最新文章
- 去年秋招,我学长拿了7个Offer,他是怎么做到的?
- java编写代码时易出错_归纳:编写Java程序最容易犯的21种错误
- 对话AI大师Bengio:AI不应变成军备竞赛
- 搜索引擎提交工具_钦州SEO优化_SEO工具常用的有哪些大盘点,做SEO优化不再累...
- 单例模式中的懒汉式以及线程安全性问题
- 服务降级的概念及应用手段
- GIS集成技术之二:数据集成
- php json to object,PHP JSON_FORCE_OBJECT函数实现强转对象
- 使用waitgroup控制协程退出
- CCF201712-1 最小差值(100分)【序列处理】
- LINUX安装C#开发环境
- 微信小程序的基础实现
- 区块链升为国家战略,它就升天了么?
- python 经验模态分解_心电信号去噪4--经验模态分解法(EMD)
- kali linux安装谷歌浏览器
- Task watchdog got triggered错误
- OSPF的DR/BDR的选举规则,数据包,接口网络
- 邮件服务器没有MX类型,mx记录和邮件服务器的关系究竟是什么?
- swoole开发多人在线游戏新手教程
- 反汇编系列(一)——工具篇