2016-10-05 3 views
-1

Я действительно новичок в java, и я подписался на класс AP, который учится очень плохо, и поэтому я не знаю, как выполнить эту часть задания. Он подражает вам добавить код, который будет делать следующиеКак найти максимальное значение несортированного массива

Найти и распечатать максимальную продажу. Распечатайте идентификатор продавца с максимальной продажей и объемом продажи, например, «Продавца 3 имела самую высокую продажу с 4500 долларов». Обратите внимание, что для этого вам не нужен другой цикл; вы можете сделать это в том же цикле, где значения считываются и вычисляется сумма.

код дана следующая

импорт 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); 
} 

}

Я действительно не знаю, что делать, и хотел бы подтолкнуть в нужном направлении, чтобы как найти максимум и идентификатор человека, который произвел Максимум.

Пожалуйста, помогите, это домашнее задание!

+0

Возможный дубликат [Java: поиск наивысшего значения в массиве] (http://stackoverflow.com/questions/1806816/java-finding-the-highest-value-in-an-array) –

+0

Здравствуйте, Milmo. Кажется, учитель дал вам оболочку для работы. Вы можете скопировать и вставить код, который работает, но тогда вы ничего не узнаете. Чтобы помочь, используя прилагаемую программу, запустите ее несколько раз, посмотрите, что происходит на каждом шаге, еще лучше проследите ее, если вы используете среду IDE. Затем подумайте о том, какие инструменты вы узнали, которые могут помочь вам решить проблему. Большинство здесь не собираются делать домашнее задание, и вы делаете себе плохую услугу, если не пытаетесь. Попробуйте что-нибудь и посмотрите, что произойдет. Это сломается/не работает/сбой ДА ... но вот как вы учитесь. – JohnG

+0

Спасибо, я знаю, в отличие от большинства людей, которые занимаются моими занятиями с целью обучения. Ваш совет очень ценится. – Milmo

ответ

0

Потому что это ваша домашняя работа, я не дам вам прямого ответа, но вместо этого даю вам несколько советов. Если добавить две переменные, скажем,

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

затем обновить две переменные на основе текущей стоимости продажи в одной из петель и распечатать их в конце.

+0

Спасибо! Я считаю, что могу использовать это, чтобы программа работала в некотором роде, спасибо за помощь. – Milmo

0

Одна из возможных стратегий поиска максимального значения несортированного массива состоит в том, чтобы пройти через массив (используя, возможно, цикл for), и отслеживать максимальное значение при его прохождении.

Я не хочу, чтобы сделать свою домашнюю работу, но это может выглядеть следующим образом:

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

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

Эта стратегия должна найти максимальное значение - надеюсь, это поможет вам! Создайте модель для циклов и операторов печати, подобных предыдущим.

+0

Благодарим вас за ответ, однако мы очень мало узнали о переносе класса (я думаю, это то, что его называют), и поэтому я бы предпочел выполнить это, используя более примитивный подход. – Milmo

0

Ключом здесь является помнить, что sum всех продаж и max количество продаж может быть рассчитано каждый раз при вводе нового продавца. В первой записи, например, продавец 0 имеет продажи N, поэтому sum - N, а max - N. На каждую последовательную запись вы можете обновить sum, добавив к ней значение, и вы можете обновить max, если значение записи больше, чем текущий известный максимум.

+0

Спасибо, это был шаг в моем процессе мышления, но ваше объяснение сделало его более ясным в моем сознании. – Milmo