Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Sacar los 5 valores mayores en un vector

Estas en el tema de Sacar los 5 valores mayores en un vector en el foro de C/C++ en Foros del Web. Haber si alguien puede resolver este problema . Tengo un vector de 49 posiciones y tengo que sacar los 5 valores mas altos y meterlos ...
  #1 (permalink)  
Antiguo 27/01/2011, 15:16
 
Fecha de Ingreso: enero-2011
Mensajes: 5
Antigüedad: 13 años, 3 meses
Puntos: 0
Sacar los 5 valores mayores en un vector

Haber si alguien puede resolver este problema . Tengo un vector de 49 posiciones y tengo que sacar los 5 valores mas altos y meterlos en otro vector de 5 posiciones no se pueden repetir los numeros que se almacenan en el segundo vector .
  #2 (permalink)  
Antiguo 27/01/2011, 15:42
 
Fecha de Ingreso: noviembre-2009
Mensajes: 186
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: Sacar los 5 valores mayores en un vector

así algo guarrilo: recorre el vector 1 comparando elemento a elemento, y quedate en una variable auxiliar el más alto de los dos, así hasta que acabes el vector (y recuerda el índice del elemento más alto de esa pasada). añade ese valor al nuevo vector. repite saltandote las posiciones de las que ya tienes los valores guardados (recuerda, los indíces).

más o menos es eso. espero que te sirva ;)
  #3 (permalink)  
Antiguo 27/01/2011, 16:04
 
Fecha de Ingreso: enero-2011
Mensajes: 5
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Sacar los 5 valores mayores en un vector

Haber el primer vector esta lleno con elementos enteros (int) y el segundo solo contiene el 0 en todas sus posiciones , necesito sacar los 5 valores mas altos y almacenarlos en el otro vector sin que ninguno de los numeros selecionados se repita y sean los mas altos .
  #4 (permalink)  
Antiguo 28/01/2011, 07:08
Avatar de dgomez5  
Fecha de Ingreso: enero-2011
Ubicación: valencia
Mensajes: 7
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Sacar los 5 valores mayores en un vector

para mi lo mejor seria que lo ordenaras de major a menor el vector 1 claro y asi ya no tendras problemas para tener los mas altos
  #5 (permalink)  
Antiguo 28/01/2011, 08:24
Avatar de dual3nigma
Colaborador
 
Fecha de Ingreso: febrero-2010
Ubicación: Ciudad de México
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 122
Respuesta: Sacar los 5 valores mayores en un vector

No cabe duda que este es el peor de los foros. Que todo lo que hacen los programadores C/C++ son ejercicios tontos?

Siempre hay puros temas de como sumo 1 + 1 ...
  #6 (permalink)  
Antiguo 28/01/2011, 10:06
 
Fecha de Ingreso: noviembre-2009
Mensajes: 186
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: Sacar los 5 valores mayores en un vector

@dual3nigma: claro, como tu naciste sabiendo porgramar al nivel de Richard Stallman...
  #7 (permalink)  
Antiguo 28/01/2011, 12:14
 
Fecha de Ingreso: octubre-2010
Ubicación: Edo. de México
Mensajes: 94
Antigüedad: 13 años, 7 meses
Puntos: 9
Respuesta: Sacar los 5 valores mayores en un vector

@dual4nigma: C/C++ no son lenguajes fáciles de digerir como perl, php, ruby o inclusive java. Aqui te tienes que meter de lleno a entender como funciona la reserva de memoria tanto dinamica como estatica, como funcionan los diferentes tipos de valores (int, float, double). Como hacer un manejo correcto de cadenas de caracteres. En fin, hay infinidad de cuestiones que debes aprender para realmente avanzar en este lenguaje, asi que no critiques, si no te gusta hay una gran variedad de foros en este sitio que talvez te llamen la atencion. Y si el realidad sientes que sabes mas que todo mundo, has aportaciones y ayuda a que los demas mejoren ¬¬.
  #8 (permalink)  
Antiguo 28/01/2011, 13:54
 
Fecha de Ingreso: enero-2011
Mensajes: 5
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Sacar los 5 valores mayores en un vector

No puedo ordenar el vector porke lo que kiero guardar es el indice , osea es decir si en la posicion 48 esta el mas alto no guardar el dato que esta dentro de vector[48] sino el 48 y asin 5 veces sin que se repita , parece un problema facil pero no le encuentro soluccion aunke tiene que ser una tonteria gracias
  #9 (permalink)  
Antiguo 02/02/2011, 06:16
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: Sacar los 5 valores mayores en un vector

Recorre el vector grande y vete guardando ordenadamente en el resultado los cinco número más grandes (o sus posiciones, es indistinto). En pseudocódigo sería algo así.

Supongo que el vector de 49 posiciones se llama numeros y el de 5 resultado.

No he tenido en cuenta que pueda haber números iguales (eso es facil tenerlo en cuenta, si tienes problemas dimelo) y tienes que tener en cuenta que las cinco primeras vueltas del bucle son distintas ya que hay que inicializar resultado.

Lo dicho, si tienes problemas dilo y lo completo del todo, pero también te tendré que dejar a ti pensar un poco

Código C:
Ver original
  1. for (i = 0; i<49; i++)
  2. {
  3.     if (numeros[i] > numero[resultado[4]])
  4.     {
  5.         if (numeros[i] > numero[resultado[3]])
  6.         {
  7.             if (numeros[i] > numero[resultado[2]])
  8.             {
  9.                 if (numeros[i] > numero[resultado[1]])
  10.                 {
  11.                     if (numeros[i] > numero[resultado[0]])
  12.                     {
  13.                         resultado[4] = resultado[3];
  14.                         resultado[3] = resultado[2];
  15.                         resultado[2] = resultado[1];
  16.                         resultado[1] = resultado[0];
  17.                         resultado[0] = i;
  18.                     }
  19.                     else
  20.                     {
  21.                         resultado[4] = resultado[3];
  22.                         resultado[3] = resultado[2];
  23.                         resultado[2] = resultado[1];
  24.                         resultado[1] = i;
  25.                     }
  26.                 }
  27.                 else
  28.                 {
  29.                     resultado[4] = resultado[3];
  30.                     resultado[3] = resultado[2];
  31.                     resultado[2] = i;
  32.                 }
  33.             }
  34.             else
  35.             {
  36.                 resultado[4] = resultado[3];
  37.                 resultado[3] = i;
  38.             }
  39.         }
  40.         else
  41.         {
  42.             resultado[4] = i;
  43.         }
  44.     }
  45. }

Etiquetas: vectores
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 08:54.