Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - elcentral_

#1
Necesito leer datos de un vector y si son superiores a una referencia dada, meterlos en otro vector de forma ordenada de menor a mayor. Este vector es de dimension maxima dada, es decir acabaré de leer datos del vector primero cuando la dimension del segundo llegue al limite o cuando se acabe el primer vector.

Tengo esto, pero no está bien y no se seguir:

Código (cpp) [Seleccionar]

#include <iostream>
using namespace std;

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=1;
 int i=1;
 double a_insertar, aux;

while ((i<utilizados_vector)&&(cont<=k)) {

 if (vector[i]>=referencia) {

 a_insertar=vector[i];

 if (cont!=1) {

 for (int j=1; j<=cont; j++) {

     if (mayores_que[j]>a_insertar) {
   
       aux=mayores_que[j];
       mayores_que[j]=a_insertar;
       mayores_que[j++]=aux;
     
       }

 }

 }
 else {
 mayores_que[cont]=a_insertar;
 }
     cont++;
    }
    i++;
 }

 for (int i=1; i<=cont; i++) {
    cout << mayores_que[i] << " ";
 }
 return 0;
}




MOD: El código debe ir entre etiquetas de Código GeSHi