思路
1.首先,创建一个可输入的二维数组.然后设置出初始值为0的最大元素值及两个下标值.
2.使用math类的abs函数求出绝对值并与最大值比较,for循环结束后得出最大值.
3.但有可能有多个数字绝对值相同,再判比较一下这几个元素的行号和列号,先比行号,再比列号,得出答案
难点
1.如何利用abs求出最大的元素值
代码示例:
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
arr[i][j]=scanner.nextInt();
//找出该数组中绝对值最大的元素、输出该元素的绝对值及其两个下标值
if(Math.abs(arr[i][j])>max_num) {
max_num=Math.abs(arr[i][j]);
max_i=i;
max_j=j;
}
2.如何比较行列号得出答案
代码示例:
//如有多个输出行号最小的,还有多个的话输出列号最小的。
else if(Math.abs(arr[i][j])==max_num) {
if(i<max_i||i==max_i&&j<max_j) {
max_i=i;
max_j=j;
}
}
源代码如下
import java.math.*;
import java.util.Scanner;
//输入一个3行4列的数组,找出该数组中绝对值最大的元素、输出该元素的绝对值及其两个下标值。如有多个输出行号最小的,还有多个的话输出列号最小的。
public class _数组输出 {
public static void main(String[] args) {
int arr[][]=new int[3][4];
int max_i=0;
int max_j=0;
int max_num=0;
Scanner scanner=new Scanner(System.in);
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
arr[i][j]=scanner.nextInt();
//找出该数组中绝对值最大的元素、输出该元素的绝对值及其两个下标值
if(Math.abs(arr[i][j])>max_num) {
max_num=Math.abs(arr[i][j]);
max_i=i;
max_j=j;
}
//如有多个输出行号最小的,还有多个的话输出列号最小的。
else if(Math.abs(arr[i][j])==max_num) {
if(i<max_i||i==max_i&&j<max_j) {
max_i=i;
max_j=j;
}
}
}
}
System.out.println(max_num+" "+(max_i+1)+" "+(max_j+1));
}
}