簡體   English   中英

如何顯示二維數組中的最大數量?

[英]How can I display the largest amount in my 2D array?

import java.util.Arrays;
import java.util.ArrayList;
import java.util.Random;

public class labb8 {
  public static void main(String[] args) {
    Random rnd = new Random();
    int[][] sales = new int[5][7];
    int[] total = new int[sales.length];
    ArrayList<String> unpopularSoftware = new ArrayList<String>();

    String[] locations = {"Houston", "Dallas", "Hunts", "San Ant", "Austin"};

    System.out.println("Location\t| Software Sales\t\t| Total Sales");
    System.out.println("--------------------------------------------------");

    for (int i = 0; i < sales.length; i++) {
      for (int j = 0; j < sales[i].length; j++) {
        sales[i][j] = rnd.nextInt(25);
        total[i] += sales[i][j];
      }
      System.out.print(locations[i] + "\t\t|");
      System.out.print(" " + Arrays.toString(sales[i]));
      System.out.println("\t| " + total[i]);
    }

    int unpopularModelCounter;
    for (int j = 0; j < sales[0].length; j++) {
      unpopularModelCounter = 0;
      for (int i = 0; i < sales.length; i++) {
        if (sales[i][j] != 0) {
          unpopularModelCounter++;
        }
      }
      if (unpopularModelCounter <= 3) {
        unpopularSoftware.add("Software " + (j + 1));
      }
    }
    System.out.println("Unpopular Software: " + unpopularSoftware);
    System.out.println("Location with most sold licenses: ");
  }
}

以上是代碼,它給了我正在尋找的結果; 但是,我想知道一些關於如何打印出擁有最多銷售軟件的位置的名稱的方法? 我試過的是把System.out.println(total[i]); System.out.println("\t| " + total[i]); 但這只是顯示了所有總數,這是我認為會發生的。 我也試過把System.out.println(total[i]); 其他 output 行在底部(這是我想要的位置),但代碼找不到 [i],這讓我相信我可能必須創建一些方法; 因此,我再次要求就如何打印出就我的代碼而言銷售量最大的城市名稱提供一些建議。

如果您希望城市名稱的總數最高,則需要查看total組中的最大總數,同時跟蹤您迄今為止看到的最大總數和您所在的索引看到了最大的總數。

像這樣的東西應該可以很好地完成這項工作:

// Our initial guess is that `total[0]` is the maximum sales total.
int maxSales = total[0];
int maxI = 0;
for (int i = 1; i < total.length; ++i) {
    if (totals[i] > maxSales) {
        maxSales = total[i];
        maxI = i;
    }
}
System.out.println(locations[maxI] + " has the most sales: " + maxSales);

也許嘗試將其添加到代碼的末尾。

int max = 0; // stores the maximum value
for (int i = 0; i < total.length; i++) {
    max = Math.max(max, total[i]);
}
System.out.println(max);

這應該打印整個數組的最大值。 我喜歡你的代碼!

暫無
暫無

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

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