Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

262
Visualizações
Iterando a través de listas de matrices

Estoy creando un juego de lotería en el que verifica si el usuario acertó 2, 3, 4 o 5 números de los números de lotería aleatorios y luego imprime un mensaje. Los números de lotería son del 1 al 100 impresos 10 veces y los usuarios adivinan 5 números. He intentado bucles for y declaraciones if y no imprime el mensaje correcto. No se preocupe por las variables, ya que solo estoy probando para ver qué funciona. Mi pregunta es, ¿cómo verifico si el usuario acertó 2, 3, 4 o 5 números? Aquí está mi código.

 // first way to check if user guessed correctly int x,y; for ( int i = 4; i< numbers.length; i++) { x = numbers[i]; for (int j = 0; j < lottery.length; j++) { y = lottery[j]; if (x == y) { System.out.println("You guessed 5 numbers"); } for ( i = 3; i< numbers.length; i++ ) { x = numbers[i]; if ( x == y) { System.out.println("You guessed 4 numbers"); } for ( i = 2; i < numbers.length; i++) { x = numbers[i]; if ( x == y) { System.out.println("You guessed 3 numbers"); } for ( i = 1; i < numbers.length; i++) { x = numbers[i]; if ( x == y) { System.out.println("You guessed 2 numbers"); } } } } } }
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

public static void main(String[] args) { int count = 0; int[] lottery = new int[5]; int[] input = new int[5]; Scanner scanner = new Scanner(System.in); System.out.println("Enter 5 number: "); for(int i = 0; i < 5; i++) { input[i] = scanner.nextInt(); } Random r = new Random(); for (int i = 0; i < lottery.length; i++) { int random = r.nextInt(10); // Upper bound of random generator = 10. lottery[i] = random; System.out.print(lottery[i]); } for (int i = 0; i < lottery.length; i++) { for (int j = 0; j < input.length; j++) { if (lottery[i] == input[j]) { count++; } } } if (count == 0) { System.out.println("\nToo bad, you have 0 correct guess. Try again!"); } else if (count == 1) { System.out.println("\n1 number guessed correctly! You won $1000!"); } else if (count == 2) { System.out.println("\n2 number guessed correctly! You won $6000!"); } else { // Add condition } }

Este recibirá 5 números aleatorios y los almacenará en una matriz de lottery . El programa le pedirá al usuario que ingrese 5 números, los almacenará en input y comparará la lottery[i] con cada número en input . Si dos números son iguales, incrementa la count . Ejemplo de ejecución:

 Enter 5 number: 1 2 3 4 5 7 2 5 9 1 2 number guessed correctly! You won $6000!

Tenga en cuenta que si el generador de números aleatorios crea dos o más números duplicados, el count también aumentará. Es un caso extremo, pero creo que puedes buscarlo en Google si quieres la mejora.

Implementar esto usando ArrayList también es mucho más simple porque ArrayList tiene el método contains() que verificará si tiene dichos elementos. Podemos usar un bucle if-else trivial para ello. Supongo que la tarea de OP tiene la restricción de usar Array y, por lo tanto, no usar este método.

over 4 years ago · Santiago Trujillo Relatório

0

He implementado un programa de ejemplo completo y totalmente funcional. Utiliza ArrayLists para almacenar los diferentes números. Con shuffle , los números de la lotería se mezclan. Después de barajar todos los números, los primeros 5 elementos se toman de los números de la lotería y se declaran como los números ganadores. Todos los números ganadores son únicos.

 import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; public class LotteryGame { public static void main(final String[] args) { final int N = 5; // Number of winning lottery numbers. ArrayList<Integer> winningNumbers = new ArrayList<Integer>(); ArrayList<Integer> userNumbers = new ArrayList<Integer>(); // Are also 5 numbers (5 out of 1 to 100 lottery // game). ArrayList<Integer> lotteryNumbers = new ArrayList<Integer>(); // Insert user numbers (user's tips). Scanner scanner = new Scanner(System.in); System.out.println("Please Enter 5 numbers: "); for (int i = 0; i < 5; i++) { userNumbers.add(scanner.nextInt()); } System.out.println("\nUser's Tips:\n" + userNumbers); // Generating the different numbers. for (int i = 1; i < 101; i++) { // Lottery game: Numbers from 1 to 100. lotteryNumbers.add(i); } // System.out.println("\nOriginal Lottery Numbers:\n" + lotteryNumbers); // Shuffle the lottery numbers randomly. Collections.shuffle(lotteryNumbers); // System.out.println("\nShuffled Numbers:\n" + lotteryNumbers); // Retrieve the N-th first elements from the ArrayList (all numbers are uniqe). for (int i = 0; i < N; i++) { winningNumbers.add(lotteryNumbers.get(i)); } System.out.println("\nWinning Numbers are:\n" + winningNumbers); // Checking the correct guessed numbers. int count = 0; for (int userTip : userNumbers) { if (winningNumbers.contains(userTip)) { count++; } } // Print out fi the user has won a money price or not. if (count == 0) { System.out.println("\nSorry, no numbers guessed!"); } else if (count == 1) { System.out.println("\nYou guessed ONE number, you win $1,000"); } else if (count == 2) { System.out.println("\nYou guessed TWO numbers, you win $6,000"); } else if (count == 3) { System.out.println("\nYou guessed THREE numbers, you win $10,000"); } else if (count == 4) { System.out.println("\nYou guessed FOUR numbers, you win $20,000"); } else if (count == 5) { System.out.println("\nYou guessed FIVE numbers, you win $30,000"); } } }

Salida de ejemplo:

 Please Enter 5 numbers: 3 7 33 93 43 User's Tips: [3, 7, 33, 93, 43] Winning Numbers are: [54, 31, 48, 64, 82] Sorry, no numbers guessed!
over 4 years ago · Santiago Trujillo Relatório

0

Convierta matrices en listas y realice las comprobaciones

 List<Integer> userNumbers = Arrays.stream(numbers).boxed().collect(Collectors.toList()); List<Integer> lotteryNumbers = Arrays.stream(lottery).boxed().collect(Collectors.toList()); int count = 0; for(int i=0; i<userNumbers.size();i++){ if(lotteruNumbers.contains(i)){ count++ } } System.out.println("You've guessed"+ count+ " numbers");
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda