Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

260
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda