用Java编写找出二维数组中最大元素的位置
时间: 2024-05-08 22:17:32 浏览: 83
你好!感谢你的问题。以下是回答:
可以使用Java来找出二维数组中最大元素的位置。具体步骤如下:
1. 定义一个变量来存储最大元素的值。
2. 然后遍历二维数组,比较每个元素的值是否大于最大元素的值,并记录其位置。
3. 遍历完成后,就可以得出最大元素的位置。
以下是示例代码:
```java
public class Main {
public static void main(String[] args) {
int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int max = arr[0][0];
int x = 0;
int y = 0;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
if (arr[i][j] > max) {
max = arr[i][j];
x = i;
y = j;
}
}
}
System.out.println("最大元素的值为:" + max + ",位置为:(" + x + ", " + y + ")");
}
}
相关问题
在eclipse中编写Java程序,设计MyArray3类来实现以下要求:找出一个3×4矩阵二维数组中的最大最小值,二维数组的元素的值由系统随机数生成函数rand()产生,取值范围为两位数即[10,100)之间。输出最大最小值的行列位置序号。
下面是MyArray3类的代码实现:
```java
import java.util.Random;
public class MyArray3 {
private int[][] arr;
public MyArray3() {
arr = new int[3][4];
Random rand = new Random();
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
arr[i][j] = rand.nextInt(90) + 10;
}
}
}
public void print() {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
System.out.print(arr[i][j] + "\t");
}
System.out.println();
}
}
public void findMaxMin() {
int max = arr[0][0], min = arr[0][0];
int maxRow = 0, maxCol = 0, minRow = 0, minCol = 0;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
if (arr[i][j] > max) {
max = arr[i][j];
maxRow = i;
maxCol = j;
}
if (arr[i][j] < min) {
min = arr[i][j];
minRow = i;
minCol = j;
}
}
}
System.out.println("最大值:" + max + ",行:" + maxRow + ",列:" + maxCol);
System.out.println("最小值:" + min + ",行:" + minRow + ",列:" + minCol);
}
public static void main(String[] args) {
MyArray3 arr = new MyArray3();
arr.print();
arr.findMaxMin();
}
}
```
在主函数中,首先创建一个MyArray3对象arr,然后调用print()方法输出随机生成的二维数组。接着调用findMaxMin()方法,该方法使用两个变量max和min保存当前找到的最大值和最小值,使用四个变量maxRow、maxCol、minRow和minCol分别保存最大值和最小值所在的行和列。使用两层循环遍历二维数组,对每个元素进行比较,如果当前元素比max大,则更新max、maxRow和maxCol;如果当前元素比min小,则更新min、minRow和minCol。最后输出最大值和最小值以及它们所在的行和列。
. 编写 Java程序, 设计 MyArray3 类来实现以下要求: 找出一个:3×4矩阵二维数组中的最大最小值, 二维数组的元素的值由系统随机数生成函数 rand()产生, 取值范围为两位数即[10,100)之间。输出最大最小值的行列位置序号。
在Java中,你可以创建一个名为MyArray3的类来完成这个任务。首先,你需要创建一个3x4的二维数组,并使用`rand()`函数填充随机数。然后遍历整个数组寻找最大值和最小值及其位置。以下是具体的实现步骤:
```java
import java.util.Random;
public class MyArray3 {
private int[][] matrix;
private int maxVal;
private int minVal;
private int maxRow;
private int maxCol;
private int minRow;
private int minCol;
public MyArray3() {
matrix = new int[3][4]; // 创建3x4矩阵
Random random = new Random();
// 使用random函数填充矩阵
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
matrix[i][j] = random.nextInt(100) + 10; // [10, 100)
if (matrix[i][j] > maxVal || (matrix[i][j] == maxVal && i < maxRow)) {
maxVal = matrix[i][j];
maxRow = i;
maxCol = j;
}
if (matrix[i][j] < minVal || (matrix[i][j] == minVal && i > minRow)) {
minVal = matrix[i][j];
minRow = i;
minCol = j;
}
}
}
}
public void printMatrixAndValues() {
System.out.println("矩阵:\n" + toStringMatrix(matrix));
System.out.println("最大值 (" + maxVal + ") 的位置: 行 " + maxRow + ", 列 " + maxCol);
System.out.println("最小值 (" + minVal + ") 的位置: 行 " + minRow + ", 列 " + minCol);
}
private String toStringMatrix(int[][] matrix) {
StringBuilder sb = new StringBuilder();
for (int[] row : matrix) {
for (int elem : row) {
sb.append(elem).append(' ');
}
sb.append("\n");
}
return sb.toString().trim();
}
public static void main(String[] args) {
MyArray3 myArray = new MyArray3();
myArray.printMatrixAndValues();
}
}
```
这个例子中,`MyArray3`类包含一个`matrix`二维数组,以及变量用于存储最大值和最小值及其对应的行和列索引。`printMatrixAndValues`方法用于显示矩阵和找到的最大最小值的位置。
阅读全文