elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Ayuda para insertar de forma ordenada en un vector en: 6 Diciembre 2020, 17:05 pm
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
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main(){
  5.  
  6.  const int TERMINADOR=-1;
  7.  double dato, referencia;
  8.  const int TAMANIO=1e5;
  9.  double vector[TAMANIO], mayores_que[TAMANIO];
  10.  int utilizados_vector, k;
  11.  
  12.  cout << "k valores mayores que."
  13.       << "\nIntroduzca reales con terminador "
  14.       << TERMINADOR << "\n";
  15.  
  16.  utilizados_vector=0;
  17.  
  18.  cout << "\nIntroduzca un número real: ";
  19.  cin >> dato;
  20.  
  21.  while ( (dato!=TERMINADOR)&&(utilizados_vector<TAMANIO)) {
  22.  
  23.     vector[utilizados_vector]=dato;
  24.     utilizados_vector++;
  25.     cout << "\nIntroduzca un número real (ó -1 para terminar): ";
  26.     cin >> dato;
  27.  
  28.  }
  29.  
  30. cout << "\nIntroduzca el valor de referencia: ";
  31.  cin >> referencia;
  32.  cout << "\nIntroduzca la dimensión máxima del vector a mostrar: ";
  33.  cin >> k;
  34.  
  35.  int cont=1;
  36.  int i=1;
  37.  double a_insertar, aux;
  38.  
  39. while ((i<utilizados_vector)&&(cont<=k)) {
  40.  
  41.  if (vector[i]>=referencia) {
  42.  
  43.  a_insertar=vector[i];
  44.  
  45.  if (cont!=1) {
  46.  
  47.  for (int j=1; j<=cont; j++) {
  48.  
  49.      if (mayores_que[j]>a_insertar) {
  50.  
  51.        aux=mayores_que[j];
  52.        mayores_que[j]=a_insertar;
  53.        mayores_que[j++]=aux;
  54.  
  55.        }
  56.  
  57.  }
  58.  
  59.  }
  60.  else {
  61.  mayores_que[cont]=a_insertar;
  62.  }
  63.      cont++;
  64.     }
  65.     i++;
  66.  }
  67.  
  68.  for (int i=1; i<=cont; i++) {
  69.     cout << mayores_que[i] << " ";
  70.  }
  71.  return 0;
  72. }


MOD: El código debe ir entre etiquetas de Código GeSHi
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines