Muchas gracias por la ayuda. Y perdon por no poner el código bien.
Ya he corregido algunas cosas pero me sigue sin salir. Uno de los valores insertados en el nuevo vector, es 0, concretamente el primero...
Ya he corregido algunas cosas pero me sigue sin salir. Uno de los valores insertados en el nuevo vector, es 0, concretamente el primero...
Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;
void InsertarOrdenado (double valor, double v[], int size) {
int indiceInsercion=0; // indice que le corresponde al elemento
while ((indiceInsercion<size)&&(v[indiceInsercion]<valor)) {
indiceInsercion++;
}
if (indiceInsercion!=size) { // si no se inserta al final, hay que mover elementos
for (int i=size-1; i>=indiceInsercion; i--) {
v[i]=v[i-1];
}
}
v[indiceInsercion]=valor;
}
int main(){
const int TERMINADOR=-1;
double dato, referencia;
const int TAMANIO=1e5;
double vector[TAMANIO], mayores_que[TAMANIO];
int utilizados_vector, k;
cout << "k valores mayores que."
<< "\nIntroduzca reales con terminador "
<< TERMINADOR << "\n";
utilizados_vector=0;
cout << "\nIntroduzca un número real: ";
cin >> dato;
while ((dato!=TERMINADOR)&&(utilizados_vector<TAMANIO)) {
vector[utilizados_vector]=dato;
utilizados_vector++;
cout << "\nIntroduzca un número real (ó -1 para terminar): ";
cin >> dato;
}
cout << "\nIntroduzca el valor de referencia: ";
cin >> referencia;
cout << "\nIntroduzca la dimensión máxima del vector a mostrar: ";
cin >> k;
int cont=0;
int i=0;
while ((i<utilizados_vector)&&(cont<k)) {
if (vector[i]>=referencia) {
InsertarOrdenado (vector[i], mayores_que, cont);
cont++;
}
i++;
}
for (int i=0; i<cont; i++) {
cout << mayores_que[i] << " ";
}
return 0;
}