Foros del Web » Programación para mayores de 30 ;) » Programación General »

Sacar el menor numero

Estas en el tema de Sacar el menor numero en el foro de Programación General en Foros del Web. Hola, estoy de vuelta. Tengo una duda que no puedo resolver con una forma eficiente. tengo mmm 4 variable de tipo int: int a, b, ...
  #1 (permalink)  
Antiguo 29/12/2004, 11:57
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Sacar el menor numero

Hola, estoy de vuelta.

Tengo una duda que no puedo resolver con una forma eficiente.

tengo mmm 4 variable de tipo int:

int a, b, c, d;

esas variables van a tener un valor X.

a=233;
b=564;
c=65;
d=3;

Ahora, tengo otr int

int menor;

Quisiera saber de que manera puedo hacer que la variable "menor" tenga el minimo valor de las cuatro variables.

En este caso menor daberia quedar con 3, y si "d" fuera 80, entonces que menor quedara con 65.

De las cuatro variables quiero obtener la menor.

Pense en hacerlo con ifs, o switch-caase, pero no habra alguna manera mas eficiente, mas rapida de poder sacar esto?

saludos
  #2 (permalink)  
Antiguo 29/12/2004, 12:24
 
Fecha de Ingreso: marzo-2002
Ubicación: Salta Capital - Actualmente estudiando en Córdoba
Mensajes: 430
Antigüedad: 22 años, 1 mes
Puntos: 0
Hola, espero que te sirva, yo lo haria usando un vector.

Es decir un vector de 4 elementos, asignaria el primer elemento a la variable menor, y despues la comparacion se ira haciendo sola en un ciclo for.
Aca te lo explico mejor con el codigo de ejemplo:

void main()
{
//Cargar valores al vector
int vec[4]; //definimos el vector estatico con la cantidad de elementos que tendrá
int menor; //variable que tendra el menor elemento del vector
for(int i=0; i<4; i++) //creamos el ciclo para la insersion de enteros en el vector
{
cout << "Ingrese el valor del campo" << i+1 << "\n";
cin >> vec[i]; //almacenamos el entero en la celda del vector
}

//Obtener el menor valor de los 4 elementos
menor=vec[0]; // hacemos el primer elemento el menor
for(int i=1; i<4; i++)// creamos ciclo para recorrer el vector a partir del elemento dos porque al primero ya lo igualamos al menor y lo usaremos para compararse con los demas
{
if(menor>vec[i])//si el entero de la variable menor es mayor que el elemento
//actual, a éste ultimo lo almacenamos en menor
{
menor=vec[i];//asignamos a menor el elemento actual
}
}

}



Esto seria todo, espero te sirva. Me falta hacer una pequeña comprobacion por si es que todos los numeros o si existe algun numero repetido, pero eso lo haces con un if mas, puedes hasta usar una bandera...
Salu2
__________________
Nada es imposible, con un poco de esfuerzo se logran las cosas.-
  #3 (permalink)  
Antiguo 29/12/2004, 12:37
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Suena bien, pero no eficiente.

Mira dime si esto seria lo mas eficiente (rapido) que se puede.

a=233;
b=564;
c=65;
d=3;


menor=a;
if(b<menor)
menor=b;
if(c<menor)
menor=c;
if(d<menor)
menor=d;

Es lo mejor que pude hacer, crees, que sea la mejor forma?
  #4 (permalink)  
Antiguo 29/12/2004, 12:39
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Eso estaría bien para cuatro números. ¿Y si fueran 5000? En ese caso algún método de ordenamiento tipo quicksort sería lo más eficiente.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #5 (permalink)  
Antiguo 29/12/2004, 12:46
 
Fecha de Ingreso: marzo-2002
Ubicación: Salta Capital - Actualmente estudiando en Córdoba
Mensajes: 430
Antigüedad: 22 años, 1 mes
Puntos: 0
Estoy de acuerdo con eternal idol, lo que hiciste no esta mal, es mas se puede hacer muchas maneras posible todo depende la imaginacion del programador, es mas hay codigos que unos son mas largos que otros pero tienen igual eficiencia.
Y como dice idol, para 4 variables esta bien, si de ultima trabajaras muchas y desconocidas puedes usar tambien el metodo que puse arriba solo que con vectores dinamicos, la verdad que no conozco todavia el quicksort, por ahi la propuesta de idol sea mejor.
Salu2
__________________
Nada es imposible, con un poco de esfuerzo se logran las cosas.-
  #6 (permalink)  
Antiguo 29/12/2004, 13:17
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Muchas gracias, de hecho son 6 variables las que necesito manejar ahora, si surge un problema con mas, usare el otro metodo.

saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:01.