Autor Tema: Generar numeros aleatorios entre 1 y 100 en java Ejercicio resuelto CU00672B  (Leído 14627 veces)

niurkafer

  • Principiante
  • **
  • Mensajes: 50
    • Ver Perfil
Hola buenas aquí os dejo mi codigo  :) me gustaria saber qué tal muchas gracias

Citar
Crea un programa Java que permita “jugar a adivinar un número” como se expone a continuación. El programa debe iniciarse indicando “Se ha generado un número aletatorio entero entre 1 y 100, intente adivinarlo”. El usuario introducirá un número y si el número aleatorio generado por el ordenador es menor deberá indicarse “No has acertado: el número es menor. Prueba otra vez”. Si el usuario introduce un número menor que el número aleatorio deberá indicarse “No has acertado: el número es mayor”. El programa terminará cuando el usuario introduzca el número aleatorio que había escogido el ordenador

Código: [Seleccionar]
import java.util.Random;
import java.util.Scanner;
public class SerieDeAleatorios {
    public static void main (String[]Args){
       Scanner entradaEscaner = new Scanner(System.in);
       int numeroAleatorio = 0;
       int entrada = 0;
       Random rd = new Random();
       numeroAleatorio = rd.nextInt(101);
       System.out.print("Se ha generado un numero aleatorio entre 1 y 100. Intente adivinarlo: ");
        while (numeroAleatorio != (entrada = entradaEscaner.nextInt())){
            if (entrada < numeroAleatorio)
                System.out.print("No has acertado, el número es mayor. Prueba otra vez: ");
            else
                System.out.print("No has acertado, el número es menor. Prueba otra vez: ");
        }
        System.out.println("LO HAS ADIVINADO");
    }   
}
« última modificación: 18 de Septiembre 2015, 08:54 de César Krall »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2228
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Hola niurkafer! Todo bien aunque el rango no es el que pedía el ejercicio.

En el api de java podemos leer de nextInt (int n) de Random:

Returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive)

Por tanto numeroAleatorio = rd.nextInt(101); no está generando un aleatorio entre 1 y 100 como pide el ejercicio, sino entre 0 y 100. Para solucionar esto puedes escribir numeroAleatorio = rd.nextInt(100) + 1; De esta manera el número será mínimo 1, máximo 1+99=100, de ese modo el número estará entre 1 y 100.

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

niurkafer

  • Principiante
  • **
  • Mensajes: 50
    • Ver Perfil
vale ya lo he corregido gracias :)
« última modificación: 22 de Septiembre 2015, 09:51 de César Krall »

 

Esto es un laboratorio de ideas...
Aprender a programar

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".