Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: niurkafer en 17 de Septiembre 2015, 15:54

Título: Generar numeros aleatorios entre 1 y 100 en java Ejercicio resuelto CU00672B
Publicado por: niurkafer en 17 de Septiembre 2015, 15:54
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");
    }   
}
Título: Re:Generar numeros aleatorios entre 1 y 100 en java Ejercicio resuelto CU00672B
Publicado por: César Krall en 18 de Septiembre 2015, 09:00
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!
Título: Re:Generar numeros aleatorios entre 1 y 100 en java Ejercicio resuelto CU00672B
Publicado por: niurkafer en 21 de Septiembre 2015, 17:51
vale ya lo he corregido gracias :)