gpt4 book ai didi

java - 与另一个元素一起携带并打印出来

转载 作者:行者123 更新时间:2023-11-30 05:39:33 26 4
gpt4 key购买 nike

这个图 block 没有澄清我的问题,这是我程序的一部分:

public static void selectionsort(int[] userID, double[] donation, PrintWriter output) {
int min, swap;
for (int i = 0; i < userID.length - 1; i++) {
min = i;
for (int m = i + 1; m < userID.length; m++) {
if (userID[m] < userID[i]) {
min = m;
swap = userID[min];
userID[min] = userID[i];
userID[i] = swap;
}
}
output.println(userID[i] + " " + donation[i]);
}
}

我的数组如下:

456             250.0
123 175.34
345 123.06

但是当我的方法转到

output.println(userID[i]+"   "+donation[i]);

它打印出来是这样的:

123   250.0
345 175.34
456 123.06

我想保持身份证号码和捐款的匹配。例如,456 应始终与 250.00 关联,无论 456 移动到哪里。我该如何修复它?

最佳答案

问题是因为在该方法中,仅对 userID 数组进行排序,而 donation 数组未进行相应的洗牌。而且 userID 数组元素和 donation 数组元素之间没有其他映射,因此两个数组元素的打印不会显示之前的关联。

因此,在您的方法中,每当交换 userID 数组元素的位置时,您也必须交换相应的 donation 数组元素的位置。可以按如下方式完成:

public static void selectionsort(int[] userID, double[] donation, PrintWriter output) {
int min, swap;
for (int i = 0; i < userID.length - 1; i++) {
min = i;
for (int m = i + 1; m < userID.length; m++) {
if (userID[m] < userID[i]) {
min = m;
swap = userID[min];
userID[min] = userID[i];
userID[i] = swap;

swap=donation[min];
donation[min]=donation[i];
donation[i]=swap;
}
}
output.println(userID[i] + " " + donation[i]);
}
}

关于java - 与另一个元素一起携带并打印出来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55931140/

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