簡體   English   中英

如何獲取二維數組的行和並將它們從高到低排列?

[英]How to get the row sum of 2 dimensional array and rank them from highest to lowest?

我這里有獲取行總和的代碼,但答案是錯誤的,我不知道如何獲得排名。

int[][] ranks = {
      {29, 20, 7, 25, 32, 6}, 
      {20, 31, 17, 31, 32, 26},
      {22, 30, 16, 32, 22, 15}
};
int sum = 0;
for(int i = 0; i < 3; i++ )
{
for(int j = 0; j < 6; j++)
{
    sum = sum + ranks[i][j];
}
System.out.println(sum);    
        }

請按以下步驟操作:

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int[][] ranks = { { 29, 20, 7, 25, 32, 6 }, { 20, 31, 17, 31, 32, 26 }, { 22, 30, 16, 32, 22, 15 } };
        int sum[] = new int[ranks.length];
        for (int i = 0; i < ranks.length; i++) {
            for (int j = 0; j < ranks[i].length; j++) {
                sum[i] += ranks[i][j];
            }
            System.out.println("Sum of row " + (i + 1) + " = " + sum[i]);
        }
        Arrays.sort(sum);
        System.out.println("Sum of ranks in highest to lowest: ");
        for (int i = sum.length - 1; i >= 0; i--) {
            System.out.println(sum[i]);
        }
    }
}

輸出:

Sum of row 1 = 119
Sum of row 2 = 157
Sum of row 3 = 137
Sum of ranks in highest to lowest: 
157
137
119

筆記:

  1. 使用int數組(上面給出的代碼中的int sum[] )來存儲每行的總和。
  2. int數組的每個索引的默認值為0
  3. 要按升序對數組進行排序,可以使用java.util.Arrays::sort 也可以有許多其他方式。
  4. 從最后到第一個元素顯示已排序的數組,以便從高到低顯示數字。
  5. 最后但並非最不重要的是,使用數組的length屬性而不是使用固定數字(如36來限制迭代。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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