Java黑皮书课后题第8章:*8.27(列排序)用下面的方法实现一个二维数组中的列排序。返回新数组,且原数组保持不变。编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵

*8.27(列排序)用下面的方法实现一个二维数组中的列排序。返回新数组,且原数组保持不变。编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵

  • 题目
    • 题目描述与运行示例
    • 破题
  • 代码

题目

题目描述与运行示例

8.26(列排序)用下面的方法实现一个二维数组中的列排序,返回新数组,且原数组保持不变:
public static double[][] sortColumns(double[][] m)
编写一个测试程序,提示用户输入一个3
3的double型矩阵,显示一个排好的矩阵
下面是一个运行示例:

Enter a 3-by-3 matrix row by row:
0.15 0.875 0.375
0.55 0.005 0.225
0.30 0.12 0.4The column-sorted array is
0.15 0.005 0.225 
0.3 0.12 0.375 
0.55 0.875 0.4 

破题

  1. 主方法:声明一个3*3长度的矩阵
  2. 主方法:输出提示语句,使用循环获取矩阵元素
  3. 主方法:调用sortRows方法
  4. 主方法:输出
  5. sortRows方法:遍历数组,每列元素进行比较
  6. sortRows方法:返回排序好的数组

代码

import java.util.Arrays;
import java.util.Scanner;public class Test8_27 {public static void main(String[] args) {//1. 主方法:声明一个3*3长度的矩阵double[][] array = new double[3][3];//2. 主方法:输出提示语句,使用循环获取矩阵元素Scanner input = new Scanner(System.in);System.out.println("Enter a 3-by-3 matrix row by row:");for (int i = 0 ; i < 3 ; i++){for (int j = 0 ; j < 3 ; j++){array[i][j] = input.nextDouble();}}//3. 主方法:调用sortRows方法double[][] result = new double[3][3];result = sortColumns(array);//4. 主方法:输出System.out.println();System.out.println("The column-sorted array is");for (int i = 0 ; i < 3 ; i++){for (int j = 0 ; j < 3 ; j++){System.out.print(result[i][j] + " ");}System.out.println();}}public static double[][] sortColumns(double[][] m){//5. sortRows方法:遍历数组,每列元素进行比较double[] temp = new double[m.length];for (int j = 0 ; j < m[0].length ; j++){for (int i = 0 ; i < m.length ; i++){temp[i] = m[i][j];}Arrays.sort(temp);for (int i = 0 ; i < m.length ; i++){m[i][j] = temp[i];}}//6. sortRows方法:返回排序好的数组return m;}
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部