编写程序题。 根据要求编写一个Java类,补充到代码中。
按要求编写ArrayTransposition类,通过二维数组行与列的互换,实现矩阵的转置。类中包含以下方法:
-
inputMatrix方法:从键盘读入行数和列数,创建数组,然后从键盘输入数组的元素值
-
transposition方法:互换二维数组的行与列。
方法声明如下:
int[][] inputMatrix();
int[][] transposition(int[][] array);
裁判测试程序样例:
import java.util.Scanner;
public class Main {
//不改变main方法
public static void main(String[] args) {
ArrayTransposition trans = new ArrayTransposition();
int[][] mat=trans.inputMatrix();
mat = trans.transposition(mat); //转置数组
display(mat);//打印转置后数组
}
//display方法:打印数组元素到屏幕
public static void display(int[][] array){
for(int i=0; i<array.length; i++){
for(int j=0; j<array[i].length; j++){
if(j==array[i].length-1) {
System.out.println(array[i][j]);
}
else {
System.out.print(array[i][j]+" ");
}
}
}
}
}
//补充ArrayTransposition类
/* 请在这里填写答案 */
输入样例:
在这里给出一组输入。例如:
2 3
1 2 3
4 5 6
结尾无空行
输出样例:
在这里给出相应的输出。例如:
1 4
2 5
3 6
结尾无空行
class ArrayTransposition {
Scanner sc = new Scanner(System.in);//注意在方法外创建Scanner对象来从键盘读入数据,注意关闭系统的输入流
public int[][] inputMatrix() {
int h = sc.nextInt();
int l = sc.nextInt();
int[][] arr = new int[h][l];
for (int i = 0; i<h;i++){
for (int j = 0;j<l;j++){
arr[i][j] = sc.nextInt();
}
}
return arr;
}//从键盘读入一个数组,依次存放
public int[][] transposition(int[][] mat) {
int[][] ar = new int[mat[0].length][mat.length];
for (int i = 0; i<mat[0].length;i++){
for (int j = 0;j<mat.length;j++){
ar[i][j] = mat[j][i];
}
}
return ar;
}//转置数组
}
本题还还是考察简单创建对象的方法,主要注意返回值类型就是了