Как заставить этот код печатать наивысшие значения в массиве?
Примеры (просмотреть подробный снимок экрана):
Счет игрока 3 = 1
Player 2 is the winner.
Счет игрока 1 = 1
Счет игрока 3 = 3
Player 2 is the winner.
Player 3 is the winner.
Счет игрока 1 = 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
}
это дубликат, потому что мне никто не помог¿?
ничто не останавливало меня, мне нужна была помощь, чтобы можно было напечатать несколько победителей массива вместо одного
да я написал этот комментарий умный парень. это единственный курс cse, который мне нужен, и у меня нет учебника, поэтому я могу получить помощь онлайн. кто-то на chegg помог мне достаточно, чтобы я мог разобраться с остальным в любом случае, код ниже единственного ответа на этот пост в качестве комментария, на случай, если кому-то еще когда-нибудь понадобится помощь с этим. нет, спасибо этому парню ^




Итерируйте по 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) + «победитель»); }}
дважды пройти по массиву ^
Что мешает вам искать в Интернете решения для поиска наибольшего значения массива?