Buenas
Tengo un problema con este código.
Necesito llenar el arreglo con números aleatorios y no sé como hacerlo, en lugar de que el usuario que ingrese los números. Como hago para que me muestre un mensaje de error si el espacio es mayor a 15. Y también como hago para que me indique en que posición del arreglo está cada número aleatorio creado.
Esto es lo que llevo por ahora
import java.util.Scanner;
public class arreglo {
public void arreglo1() {
Scanner in = new Scanner(System.in);
double x[], mayor, menor;
int n, i;
do {
System.out.print("Cantidad de elementos del arreglo : ");
n = in.nextInt();
} while (n <= 0 || n > 15);
x = new double[n];
for (i = 0; i < n; i++) {
System.out.print("x[" + i + "]: ");
x[i] = in.nextDouble();
}
System.out.println("Elementos del arreglo");
for (i = 0; i < n; i++) {
System.out.println("x[" + i + "]: " + x[i]);
}
// Calculo del mayor y menor
mayor = menor = x[0];
for (i = 1; i < n; i++) {
if (x[i] > mayor) {
mayor = x[i];
} else if (x[i] < menor) {
menor = x[i];
}
}
System.out.println("El mayor es " + mayor);
System.out.println("El menor es:" + menor);
}
}
De antemano gracias por la ayuda
estas son cosas que encuentras con una busqueda en google
http://puntocomnoesunlenguaje.blogspot.com/2013/04/llenar-un-array-con-numeros-aleatorios.html
a que te refieres con que el espacio sea mayor a 15?
Que el espacio en el vector no sea mayor a 15
Te pongo un ejemplo muy simple con method chaining (encadenamiento de métodos) que es útil aquí:
public class ArrayGenerator {
private double[] numbers;
private double minor;
private double major;
final static Scanner READER;
final static Random GENERATOR;
public ArrayGenerator() {
READER = new Scanner(System.in);
GENERATOR = new Random();
}
public ArrayGenerator fillArray() throws ArrayOutOfBoundsException {
System.out.println("¿Cuántos números desea generar?");
byte quantity = READER.nextByte();
if(quantity > 15) {
throw new ArrayOutOfBoundsException("El arreglo debe tener máximo 15 elementos");
}
numbers = new Double[quantity];
for(byte i=0; i<quantity; i++) {
numbers[i] = GENERATOR.nextDouble();
}
return this;
}
public ArrayGenerator major() {
major = numbers[0]; // asume 1er elemento como mayor
for(double number : numbers) {
major = (number > major) ? number : major;
}
return this;
}
public ArrayGenerator minor() {
minor = numbers[0]; // asume 1er elemento como menor
for(double number : numbers) {
minor = (number < minor) ? number : minor;
}
return this;
}
public double getMajor() {
return major;
}
public double getMinor() {
return minor;
}
}
En la clase donde se instanciará ArrayGenerator:
try {
ArrayGenerator arrayGenerator =
new ArrayGenerator()
.fillArray()
.major()
.minor();
System.out.println("El número mayor es: " + arrayGenerator.getMajor());
System.out.println("El número menor es: " + arrayGenerator.getMinor());
} catch(ArrayOutOfBoundsException ex) {
// el mensaje es el que le pasamos por parámetro al constructor de la excepción
// cuando lo lanzamos si es que se elige ingresar más de 15 números. El mensaje
// es: 'El arreglo debe tener máximo 15 elementos'
System.err.println(ex.getMessage());
}