编写程序,在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 12:03:38 浏览: 72
好的,我来解答你的问题。
下面是程序的实现:
```java
public class Main {
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 maxVal = Integer.MIN_VALUE;
int minVal = Integer.MAX_VALUE;
int maxX = 0;
int maxY = 0;
int minX = 0;
int minY = 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];
maxX = i;
maxY = j;
}
if (arr[i][j] < minVal) {
minVal = arr[i][j];
minX = i;
minY = j;
}
}
}
System.out.println("最大值:" + maxVal + ",下标为:" + maxX + "," + maxY);
System.out.println("最小值:" + minVal + ",下标为:" + minX + "," + minY);
int[][] newArr = new int[4][4];
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
int sum = 0;
int num = arr[i][j];
while (num != 0) {
sum += num % 10;
num /= 10;
}
newArr[i][j] = sum;
}
}
for (int i = 0; i < newArr.length; i++) {
for (int j = 0; j < newArr[i].length; j++) {
System.out.print(newArr[i][j] + "\t");
}
System.out.println();
}
}
}
```
输出结果如下:
```
最大值:903,下标为:3,0
最小值:32,下标为:0,2
6 12 5 17
6 8 13 14
13 6 6 4
12 11 13 13
```
程序的思路:
1. 先遍历数组找出最大值和最小值的位置,记录下来。
2. 再遍历数组,计算每个元素的各个位数之和,将计算结果存入新数组中。
3. 输出新数组中的元素。
希望能对你有帮助!
阅读全文