簡體   English   中英

如何打印出具有 ID 的數組中的最大值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM