如何查找未排序数组的最大值

时间:2016-10-05 02:22:51

标签: java

我是java的新手,我报名参加了一个非常糟糕的AP课程,所以我不知道如何完成这部分任务。它鼓励您添加将执行以下操作的代码

查找并打印最高销售额。打印具有最大销售额和销售额的销售人员的ID,例如“销售员3具有最高销售额4500美元。”请注意,您不需要另外的循环;你可以在读取值并计算总和的同一循环中完成它。

我们给出的代码如下

import java.util.Scanner; 公共类销售{

public static void main(String[] args) {
    final int salesPeople = 5;
    int[] sales = new int[salesPeople];
    int sum;

    Scanner scan = new Scanner(System.in);

    for (int i=0; i<sales.length; i++) {

        System.out.print("Enter sales for salesperson " + i + ":");
        sales[i] = scan.nextInt();
    }

    System.out.println("\nSalesperson Sales");
    System.out.println("------------------");
    sum = 0;
    for (int i=0; i<sales.length; i++) {
        System.out.println("     " + "     " + sales[i]);
        sum += sales[i];

    }

    System.out.println("\nTotal sales: " + sum);
    System.out.println("Average sale " + sum/salesPeople);
}

}

我真的不知道该怎么做,并希望在正确的方向上轻推一下如何找到产生最大值的人的最大值和身份证。

请帮忙这是作业!

3 个答案:

答案 0 :(得分:0)

查找未排序数组的最大值的一种可能策略是遍历数组(可能使用for循环),并在浏览时跟踪最大值。

我不想做你的作业,但这可能看起来像:

   max = Integer.MIN (the smallest possible integer value)

   for item in array
       if item is greater than max
            store item in max

此策略应找到最大值 - 希望这对您有所帮助!对for循环和print语句进行建模,就像之前显示的那样。

答案 1 :(得分:0)

这里的关键是要记住,每次输入新的推销员条目时,都可以计算所有销售额和sum销售数量的max。例如,在第一个条目上,销售员0有N个销售 - 因此sum为N而max为N.在每个连续条目中,您可以通过添加更新sum它的值,如果条目的值大于当前已知的最大值,您可以更新max

答案 2 :(得分:0)

因为这是你的作业,我不会给你直接答案,而是给你一些提示。如果你添加两个变量,比如说,

int heighestSale = -1; // assume the sales are not negative or at least one sale is not negative int heighestPerson = -1;

然后根据其中一个循环中的当前销售值更新这两个变量,并在最后打印出来。