2、定义一个二维数组,从键盘输入一个矩阵的值,对矩阵进行转置,输出转置后的矩阵。并求出原矩阵中的最大值和最小值,输出其所在的行号和列号。用Java编写
时间: 2024-05-15 19:18:17 浏览: 212
好的,我已经记录下你的问题了。以下是答案:
可以使用以下代码来定义一个二维数组、从键盘输入矩阵值、进行矩阵转置并输出转置后的矩阵:
```java
import java.util.Scanner;
public class MatrixTranspose {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// 获取矩阵的行和列
System.out.print("请输入矩阵的行数: ");
int rows = input.nextInt();
System.out.print("请输入矩阵的列数: ");
int columns = input.nextInt();
// 定义矩阵
int[][] matrix = new int[rows][columns];
// 从键盘输入矩阵的值
System.out.println("请输入矩阵的值:");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
matrix[i][j] = input.nextInt();
}
}
// 输出原矩阵
System.out.println("原矩阵是:");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
// 转置矩阵
int[][] transposedMatrix = new int[columns][rows];
for (int i = 0; i < columns; i++) {
for (int j = 0; j < rows; j++) {
transposedMatrix[i][j] = matrix[j][i];
}
}
// 输出转置后的矩阵
System.out.println("转置后的矩阵是:");
for (int i = 0; i < columns; i++) {
for (int j = 0; j < rows; j++) {
System.out.print(transposedMatrix[i][j] + " ");
}
System.out.println();
}
// 查找最大值和最小值及其所在的位置
int max = matrix[0][0];
int min = matrix[0][0];
int maxRow = 0;
int maxColumn = 0;
int minRow = 0;
int minColumn = 0;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
if (matrix[i][j] > max) {
max = matrix[i][j];
maxRow = i;
maxColumn = j;
}
if (matrix[i][j] < min) {
min = matrix[i][j];
minRow = i;
minColumn = j;
}
}
}
// 输出最大值和最小值及其所在的位置
System.out.println("原矩阵中的最大值是: " + max + ",它在第 " + (maxRow + 1) + " 行,第 " + (maxColumn + 1) + " 列");
System.out.println("原矩阵中的最小值是: " + min + ",它在第 " + (minRow + 1) + " 行,第 " + (minColumn + 1) + " 列");
}
}
```
以上就是答案了,希望能够帮助到你。如果你有其他问题,可以随时问我。
阅读全文