gpt4 book ai didi

java - 切换二维数组中的最大值和最小值

转载 作者:行者123 更新时间:2023-12-02 07:41:43 24 4
gpt4 key购买 nike

我正在尝试切换数组的最小值和最大值。

我的代码:

public static void swap(int[][] a, int i0, int j0, int i1, int j1) {
int temp = a[i0][j0];
a[i0][j0] = a[i1][j1];
a[i1][j1] = temp;
}
public static void main(String args[]){
int max = 0, min = 0, tmpI = 0, tmpJ = 0, tmpI1 = 0, tmpJ1 = 0;
int[][] a = {{10,9,20} , {2,10,10}};
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
if (min > a[i][j]) {
min = a[i][j];
tmpI1 = i; tmpJ1 = j;
}
if (max < a[i][j]) {
max = a[i][j];
tmpI = i; tmpJ = j;
}
}
}
System.out.println(Arrays.deepToString(a));
swap(a,tmpI1,tmpJ1,tmpI,tmpJ);
System.out.println(Arrays.deepToString(a));
}

输出:

[[10, 9, 20], [2, 10, 10]]
[[20, 9, 10], [2, 10, 10]]

由于某种原因,它仅切换到第一个数字。有什么帮助吗?我是java新手。

最佳答案

问题出在您的初始值 min (0) 上。当你说,

if (min > a[i][j]) {

这永远不会是真的(因为0小于你的数字)。将 min 的声明更改为类似

min = Integer.MAX_VALUE

因为每个 int 值都会小于该值。

关于java - 切换二维数组中的最大值和最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35280978/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com