Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/03/2016, 08:46
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 1 mes
Puntos: 204
Respuesta: ordenar vectores

Si estás usando 10 elementos lo suyo sería tener:
Código C++:
Ver original
  1. float arbol[10];
en vez de:
Código C++:
Ver original
  1. float arbol[999];
Además, en C++ existe una cosa llamada bucles que son muy útiles. Te permiten, por ejemplo, evitar repetir código de forma absurda.

Esto:
Código C++:
Ver original
  1. cin >> arbol[1] >> arbol[2] >>arbol[3] >>arbol[4] >>arbol[5] >>arbol[6] >>arbol[7] >>arbol[8] >>arbol[9] >>arbol[10];
Es equivalente a:
Código C++:
Ver original
  1. for(int i=0;i<10;i++)
  2.   cin >> arbol[i];
Existen otras formas mejores de hacerlo, pero saber que los bucles los puedes usar también para esto es un comienzo. Por cierto, el primer elemento del array es arbol[0], no arbol[1].

Lo comentado te sirve también para imprimir los valores.

Por otro lado, intercambiar dos valores es tan sencillo o complicado como ejecutar una de estas dos opciones:
Código C++:
Ver original
  1. float temp = arbol[i];
  2. arbol[i] = arbol[j];
  3. arbol[j] = temp;
o
Código C++:
Ver original
  1. std::swap(arbol[i],arbol[j]);
Tu estás actualmente haciendo:
Código C++:
Ver original
  1. policia=arbol[k];
  2. arbol[k]=menor;
  3. menor=policia;
Es decir, arbol[k] acaba en menor en vez de acabar en arbol[loquesea]

Por cierto, Para qué usas 'k' exactamente? ¿Por qué es un dato que le pides al usuario?
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.