La Web del Programador: Comunidad de Programadores
https://www.lawebdelprogramador.com/foros/Java/677888-Determinar-mayor-entre-numeros.html

Determinar mayor entre números

Imágen de perfil de Miguel

Determinar mayor entre números

Publicado por Miguel (8 intervenciones) el 19/08/2006 07:26:59
Hola, quisiera saber si existe alguna función en java para determinar cual es el mayor o el menor entre un determinado grupo de números.

Desde ya muchas gracias por su atención. Salu2

RE:Determinar mayor entre números

Publicado por Giorgio (3 intervenciones) el 19/08/2006 07:42:40
En java puedes utilizar el ...
Math.max(int num1,int num2), sea de tipo int, double o float, te devuelve el mayor valor de los dos que ingreses, o bien el Math.min(int num1,int num2), que te retorna el menor de los dos numeros ingresados. Pero lo mejor es que utilizes una estructura repititiva como el for el do-while o while, preferible q uses para este caso el while, para q vallas actualizando el valor del numero mayor ... em un arreglo vector lista, etc lo que estes usando. Espero te sirva, si deseas más información solo pregunta, en lo posible tratare de solucionar tu problema.

RE:Determinar mayor entre números

Publicado por Ascari Romo (36 intervenciones) el 19/08/2006 17:26:34
Hola:

Es muy fácil y como ya te lo sugieren, con algún ciclo for o do while metiendo los valores en un arreglo puedes encontrar facilmente un valor máximo y minimo.

Lo primero seria que el programa preguntara el número de valores que se desea introducir:

do
{
System.out.print("Número de valores que desea introducir: ");
nElementos = Leer.datoInt();
}
while (nElementos < 1);

Leer.datoInt() es un método definido por el programador, en tu caso solo deberas hacer uso de un BufferReader (supongo que sabes como leer datos desde el teclado en caso contrario puedes hacer uso de JOptionPane, solo deberias convertir a numero antes de usar los valores)

Luego creas el arreglo de dimensión nElementos y declaras otras variables que te ayudaran:

float[] dato = new float[nElementos];
int i = 0; // subíndice
float max, min; // valor máximo y valor mínimo

Posteriormente preguntas por los datos:

for (i = 0; i < dato.length; i++)
{
System.out.print("dato[" + i + "]= ");
dato[i] = Leer.datoFloat();
if (Float.isNaN(dato[i])) break; // salir del bucle
}

isNan es un método de Float que te devuelve un true en caso de que el valor introducido sea NO numerico, si esto es asi sale del programa con el break; en caso contrario continua.

Finalmente ua tienes tu arreglo con x numero de valores, ahora solo resta buscar el mayor y menor:

nElementos = i; // número de valores leídos
// Obtener los valores máximo y mínimo
if (nElementos > 0)
{
max = min = dato[0];
for (i = 0; i < nElementos; i++)
{
if (dato[i] > max)
max = dato[i];
if (dato[i] < min)
min = dato[i];
}

Solo muestras con un println a max y min que te devolvera el valor maximo y minimo respectivamente.

Saludos!!

RE:Determinar mayor entre números

Publicado por Jefree Alexander (1 intervención) el 19/08/2006 21:15:25
El algoritmo para encontrar el mayor dato en un vector es tipicamente el siguiente


int mayor(int [] vector)
{
int mayor = vector[0]; //suponemos que el primer elemento es el mayor
for(int i = 1; i<vector.length; i++)
{
if(vector[i]>mayor)mayor = vector[i];
}
return mayor;

}

la funcion se usaria asi:

.........
int [] vectorDeNumeros = new int[10]; //por ejemplo
.......
.......
int numeroMayor = mayor(vectorDeNumeros);
.........