Как заставить этот код печатать наивысшие значения в массиве?

Как заставить этот код печатать наивысшие значения в массиве?

Примеры (просмотреть подробный снимок экрана):

  • Счет игрока 1 = 1
  • Игрок 2 Счет = 2
  • Счет игрока 3 = 1

    Player 2 is the winner.

  • Счет игрока 1 = 1

  • Счет игрока 2 = 3
  • Счет игрока 3 = 3

    Player 2 is the winner.
    Player 3 is the winner.

  • Счет игрока 1 = 1

  • Счет игрока 2 = 1
  • Счет игрока 3 = 1

    Player 1 is the winner.
    Player 2 is the winner.
    Player 3 is the winner.`

Пока что вот моя попытка кода:

/**
 * [algorithm description here]
 * @param players
 * @param cards
 */
public static void playGame(int players, int cards) {
    if (players * cards > 52) {
        System.out.println("Not enough cards for that many players.");
        return;
    }
    boolean[] deck = new boolean[52];
    int[] playerScore = new int[players];
    for (int i = 0; i < players; i++) {
        System.out.println("Player " + (i + 1));
        int[] hand = Cards.dealHandFromDeck(cards, deck);
        Cards.printHand(hand);
        System.out.println("Score = " + Cards.pointValue(hand));
        System.out.println();
        playerScore[i] = Cards.pointValue(hand);
    }
    //go through playerScore array twice, first to find the highest score, then who has that score
}

Что мешает вам искать в Интернете решения для поиска наибольшего значения массива?

Andreas 19.11.2018 17:33

это дубликат, потому что мне никто не помог¿?

buy bitcoin 19.11.2018 20:07

ничто не останавливало меня, мне нужна была помощь, чтобы можно было напечатать несколько победителей массива вместо одного

buy bitcoin 19.11.2018 20:07

да я написал этот комментарий умный парень. это единственный курс cse, который мне нужен, и у меня нет учебника, поэтому я могу получить помощь онлайн. кто-то на chegg помог мне достаточно, чтобы я мог разобраться с остальным в любом случае, код ниже единственного ответа на этот пост в качестве комментария, на случай, если кому-то еще когда-нибудь понадобится помощь с этим. нет, спасибо этому парню ^

buy bitcoin 20.11.2018 22:28
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
295
1

Ответы 1

Итерируйте по playerScore, сравнивая его значение с максимальным значением до предыдущей итерации или 0, если итерация равна нулю. Если он больше, максимальное значение - это значение итерации.

int maximumValue = 0;
for(int i = 0; i < playerScore.length; i++) {
    if (playerScore[i] > maximumValue) {
        maximumValue = playerScore[i];
    }
}

Чтобы проверить плеер с максимальным значением, вы можете использовать тот же фрагмент кода, что и раньше:

int maximumValue = 0;
long player = -1;
for(int i = 0; i < playerScore.length; i++) {
    if (playerScore[i] > maximumValue) {
        maximumValue = playerScore[i];
        player = i;
    }
}
if (player > -1) System.out.println("Player with highest score: " + (player + 1));

int highScore = -1; for (int я = 0; я <игроки; я ++) {System.out.println ("Игрок" + (я + 1)); int [] hand = Cards.dealHandFromDeck (карты, колода); Cards.printHand (рука); System.out.println ("Score = " + Cards.pointValue (рука)); System.out.println (); playerScore [i] = Cards.pointValue (рука); если (Cards.pointValue (рука)> высшая оценка) {высшая оценка = Cards.pointValue (рука); }} if (playerScore [i] == highScore) {System.out.println («Игрок» + (i + 1) + «победитель»); }}

buy bitcoin 20.11.2018 22:21

дважды пройти по массиву ^

buy bitcoin 20.11.2018 22:22

Другие вопросы по теме