Ejercicio 16 – Comprobación de rango aleatorio

Enunciado

Escribe un programa qué pida un número entero al usuario y compruebe si dicho número está dentro del rango [a, b], donde a y b son números generados aleatoriamente.

Reglas del programa:

  • Si el número está fuera del rango, no se realiza ninguna acción especial.
  • Si el número está dentro del rango, se deben mostrar los valores de a y b.
  • En todos los casos, al final se muestra el número introducido.

Explicación del ejercicio

1️⃣ Generación de números aleatorios

Math.random() genera un número decimal entre 0 y 1. Para convertirlo en un número entero del 0 al 99:

(int)(Math.random() * 100)

2️⃣ Ajustar el rango [a, b]

Puede ocurrir qué a sea mayor qué b. En ese caso intercambiamos valores:

if (a > b) intercambiamos a y b.

3️⃣ Comprobar el rango

Se usa una condición compuesta:

numero >= a && numero <= b

Solución en Java


import java.util.Scanner;

public class Ejercicio16 {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        System.out.print("Introduce un número entero: ");
        int numero = sc.nextInt();

        int a = (int)(Math.random() * 100);
        int b = (int)(Math.random() * 100);

        // Asegurar qué a <= b
        if (a > b) {
            int temp = a;
            a = b;
            b = temp;
        }

        if (numero >= a && numero <= b) {
            System.out.println("El número está dentro del rango.");
            System.out.println("a = " + a);
            System.out.println("b = " + b);
        }

        System.out.println("Número introducido: " + numero);
    }
}
    

Ejemplo de ejecución


Introduce un número entero: 50
a = 12
b = 78
El número está dentro del rango.
Número introducido: 50
    

Introduce un número entero: 5
a = 20
b = 60
Número introducido: 5