Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Luis Fdo Carvajal en 14 de Mayo 2017, 17:34
-
Buenos días, ejercicio CU00908C del tutorial de programación avanzada con Java.
Por favor para su revisión. Aunque recuerdo que nos solicitan crear clases y métodos distintos al main para dar solución a los ejercicios, esta es una manera diferente de resolverlo.
Gracias
package random_1;
import java.util.Random;
import java.util.Scanner;
/**
*
* @author ITCO1724
*/
public class Random_1 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
//Creación de un objeto Scanner
Scanner sc = new Scanner(System.in);
int numInicial, numFinal,numIntentos;
int contadorAciertos = 0;
int contadorFallos = 0;
String[] solucion = new String[3];
String seguir="s";
while (seguir.equalsIgnoreCase("s")) {
System.out.println ("¿Quieres adivinar el numero? (s/n)");
seguir = sc.nextLine();
if (seguir.equalsIgnoreCase("s")) {
System.out.print("Introduce el numero inicial: ");
numInicial = sc.nextInt();
System.out.print("Introduce el numero final: ");
numFinal = sc.nextInt();
int rango = (numFinal- numInicial) ;
System.out.println("El rango del arreglo es de :" + rango);
System.out.print("Introduce el numero de intentos : ");
numIntentos = sc.nextInt();
System.out.println("El numero de intentos :" + numIntentos);
Random rnd = new Random();
for(int i = 1; i<=numIntentos; i++){ //Generar 2 numeros enteros entre 40 y 60 ambos incluidos
int numeroAleatorio;
numeroAleatorio = (int) (rnd.nextDouble() * rango + numInicial);
// Imprimir numeros aleatorios
System.out.println( "El #aleatorio :" + numeroAleatorio);
System.out.print("QUE NUMERO ESTOY PENSANDO? : ");
int tmpPensando =sc.nextInt();
solucion[i] = Integer.toString(numeroAleatorio); //Pasar a string la variable int tmpPensando
System.out.println("El numero que estoy pensando :" + numeroAleatorio);
if (tmpPensando >= 0 && tmpPensando != numeroAleatorio){
System.out.println(" No has acertado!! :");
contadorFallos = contadorFallos+1;}
else {
System.out.println(" Has acertado!! :");
contadorAciertos = contadorAciertos+1;}
if(tmpPensando >=0 && numeroAleatorio >= 0 ){
System.out.println("Has acertado " + contadorAciertos + "veces y has fallado "+ contadorFallos + "veces. Eran solución:" + solucion[i]);}
else {System.out.println ("Los valores no son válidos");}
}
System.out.println ("¡Hasta la próxima!");break;}
}
}
}
-
Hola Luis Fdo Carvajal
El ejercicio no cumple con la ejecución que pedía el enunciado
Por otro lado, en algunos casos se ejecuta correctamente pero en otros casos me salta un error java.lang.ArrayIndexOutOfBoundsException en la línea solucion = Integer.toString(numeroAleatorio); //Pasar a string la variable int tmpPensando
Deberías revisarlo
Saludos