[英]Need to print out max value of an array and the name of which index holds the highest value
[英]How to print out the highest value in an array with the ID?
我的任務要我將 ID 和捐款輸入到一個數組中。 根據 ID 和捐款金額對它們進行排序后,我想打印出來以控制台 ID 和最高捐款金額。 我的程序循環遍歷每筆捐款金額並在確定最高金額之前將其打印出來。 我怎樣才能解決這個問題?
public static void bublesort(int[] idNumbers, double[] donations, int donorCount) {
for (int i = 0; i < donorCount; i++) {
for (int j = i + 1; j < donorCount; j++) {
if (donations[i] > donations[j]) {
int temp = idNumbers[i];
idNumbers[i] = idNumbers[j];
idNumbers[j] = temp;
temp = (int) donations[i];
donations[i] = donations[j];
donations[j] = temp;
System.out.println("The highest donation: " + donations[j] + " was achieved by: " + idNumbers[j]);
}
}
}
if (donorCount % 2 != 0) {
System.out.printf("Median donation: %.2f\n", donations[donorCount / 2]);
} else {
System.out.printf("Median donation: %.2f\n", (donations[donorCount / 2 + 1]) / 2);
}
}
您應該在 for-loop scope 之外打印排序后的最高捐贈。
對捐贈數組使用double
溫度。
參數donorCount
是多余的,您應該改用局部變量。
代碼:
public static void bubblesort(int[] idNumbers, double[] donations) {
int donorCount = idNumbers.length;
for (int i = 0; i < donorCount; i++) {
for (int j = i + 1; j < donorCount; j++) {
if (donations[i] > donations[j]) {
int tempId = idNumbers[i];
idNumbers[i] = idNumbers[j];
idNumbers[j] = tempId;
double tempDonation = donations[i];
donations[i] = donations[j];
donations[j] = tempDonation;
}
}
}
System.out.println("The highest donation: " + donations[donorCount-1] + " was achieved by: " + idNumbers[donorCount-1]);
if (donorCount % 2 != 0) {
System.out.printf("Median donation: %.2f\n", donations[donorCount / 2]);
} else {
System.out.printf("Median donation: %.2f\n", (donations[donorCount / 2 + 1]) / 2);
}
}
輸入:
int[] idNumbers = {5, 3, 2, 6, 1};
double[] donations = {10, 6, 4, 12, 2};
bubblesort(idNumbers, donations);
System.out.println(Arrays.toString(idNumbers));
System.out.println(Arrays.toString(donations));
Output:
The highest donation: 12.0 was achieved by: 6
Median donation: 6.00
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.