使用Java编写:求二维数组,的最大值所在的行和列。 输出内容为:最大值在第行第列
时间: 2024-05-01 18:23:15 浏览: 109
假设二维数组为 `int[][] arr`,可以使用以下代码来求解最大值所在的行和列:
```
int maxVal = Integer.MIN_VALUE;
int maxRow = 0;
int maxCol = 0;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
if (arr[i][j] > maxVal) {
maxVal = arr[i][j];
maxRow = i;
maxCol = j;
}
}
}
System.out.println("最大值在第" + (maxRow + 1) + "行第" + (maxCol + 1) + "列");
```
其中,`maxVal` 存储当前已经遍历过的最大值,`maxRow` 和 `maxCol` 分别存储最大值所在的行和列。在遍历过程中,如果发现一个元素比当前最大值还要大,就更新 `maxVal`、`maxRow` 和 `maxCol` 的值。最后输出结果时,注意行和列的下标从 1 开始。
相关问题
【位置类】 1)题目要求:设计一个名为Location的类,定位二维数组中的最大值及其位置。这个类包括公共的数据域row、column和maxValue,二维数组中的最大值及其下标用double型的maxValue以及int型的row和column存储。 编写下面的方法,返回一个二维数组中最大值的位置,返回值是一个Location的实例。 public static Location locateLargetst(double[][] a) 编写一个测试程序,提示用户输入一个二维数组,然后显示这个数组中的最大元素及下标。运行实例如下: 输入二维数组的行数和列数: 3 4 输入数组: 23.5 35 2 10 4.5 3 45 3.5 35 44 5.5 9.6 最大元素及其下标是: 45 在(1,2) 2)编写源程序文件,代码如下。
```java
import java.util.Scanner;
public class Location {
public int row;
public int column;
public double maxValue;
public Location(int row, int column, double maxValue) {
this.row = row;
this.column = column;
this.maxValue = maxValue;
}
public static Location locateLargest(double[][] a) {
int row = 0;
int column = 0;
double maxValue = a[row][column];
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
if (a[i][j] > maxValue) {
row = i;
column = j;
maxValue = a[i][j];
}
}
}
return new Location(row, column, maxValue);
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("输入二维数组的行数和列数: ");
int rows = input.nextInt();
int columns = input.nextInt();
double[][] a = new double[rows][columns];
System.out.println("输入数组:");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
a[i][j] = input.nextDouble();
}
}
Location location = locateLargest(a);
System.out.println("最大元素及其下标是: " + location.maxValue + " 在(" + location.row + "," + location.column + ")");
}
}
```
Java中编写程序,定义一个3行4列的二维数组,键盘输入元素,求出该二维数组中的最大值和最小值,并显示输出最大值和最小值及它们的位置
好的,我知道了。以下是Java代码实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int[][] arr = new int[3][4];
Scanner scanner = new Scanner(System.in);
int max = arr[0][0], min = arr[0][0], maxX = 0, maxY = 0, minX = 0, minY = 0;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.printf("请输入第%d行第%d列的元素:", i + 1, j + 1);
arr[i][j] = scanner.nextInt();
if (arr[i][j] > max) {
max = arr[i][j];
maxX = i;
maxY = j;
}
if (arr[i][j] < min) {
min = arr[i][j];
minX = i;
minY = j;
}
}
}
System.out.printf("最大值为%d,位置为第%d行第%d列;\n", max, maxX + 1, maxY + 1);
System.out.printf("最小值为%d,位置为第%d行第%d列;\n", min, minX + 1, minY + 1);
}
}
```
运行程序后,输入12个元素,程序将输出最大值和最小值及它们的位置。
阅读全文