使用java编写程序,在main方法中定义一个大小为4*4的二维整型数组,数组元素如下所示: 123 345 32 89 213 206 85 77 49 411 114 220 903 227 319 166 (1)分别输出数组中元素最大值和最小值的下标。 (2)计算每个元素值的各个位数之和,将和作为新元素,生成一个新的4*4的二维整型数组并按题目示例输出
时间: 2024-02-17 11:13:27 浏览: 18
好的,以下是使用Java编写的程序,可以实现您的需求:
```java
public class TwoDimensionalArray {
public static void main(String[] args) {
int[][] arr = {{123, 345, 32, 89},
{213, 206, 85, 77},
{49, 411, 114, 220},
{903, 227, 319, 166}};
// 找出最大值和最小值的下标
int maxIndexRow = 0, maxIndexCol = 0, minIndexRow = 0, minIndexCol = 0;
int maxValue = arr[0][0], minValue = arr[0][0];
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[0].length; j++) {
if (arr[i][j] > maxValue) {
maxValue = arr[i][j];
maxIndexRow = i;
maxIndexCol = j;
}
if (arr[i][j] < minValue) {
minValue = arr[i][j];
minIndexRow = i;
minIndexCol = j;
}
}
}
System.out.println("The maximum value is " + maxValue + ", and its index is [" + maxIndexRow + "][" + maxIndexCol + "].");
System.out.println("The minimum value is " + minValue + ", and its index is [" + minIndexRow + "][" + minIndexCol + "].");
// 计算每个元素值的各个位数之和,并生成新的二维数组
int[][] newArr = new int[4][4];
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[0].length; j++) {
int sum = 0;
int num = arr[i][j];
while (num > 0) {
sum += num % 10;
num /= 10;
}
newArr[i][j] = sum;
}
}
// 输出新的二维数组
System.out.println("The new array is:");
for (int i = 0; i < newArr.length; i++) {
for (int j = 0; j < newArr[0].length; j++) {
System.out.print(newArr[i][j] + "\t");
}
System.out.println();
}
}
}
```
在这个程序中,我们首先定义了一个大小为4*4的二维整型数组 `arr`,并初始化了它的元素。
接着,我们使用两层循环遍历整个数组,找出其中的最大值和最小值,以及它们的下标。其中,我们使用了 `maxValue` 和 `minValue` 变量来记录最大值和最小值,使用 `maxIndexRow`、`maxIndexCol`、`minIndexRow`、`minIndexCol` 四个变量来记录它们的下标。
然后,我们又使用两层循环计算每个元素值的各个位数之和,并将这个和作为新元素,生成了一个新的4*4的二维整型数组 `newArr`。
最后,我们使用两层循环输出了新的二维数组 `newArr`。
注意:在实现计算每个元素值的各个位数之和的部分,我们使用了 while 循环和取模运算(%)来逐位取出每个数字,并使用除法运算(/)去掉已经取出的数字。