Fallo ordenar vectores
Publicado por Eliot (6 intervenciones) el 05/12/2020 12:40:50
Buenas, debo implementar un cpp donde recibiendo valores de numeros reales por teclado, los almacene en un vector. Hasta aqui todo bien. Mi código funciona. El problema viene cuando debe introducir una referencia y guardar en otro vector DE FORMA ORDENADA DE MENOR A MAYOR, aquí mi programa presenta problemas, ya que al guardar los valores en el nuevo vector, siempre se queda con el más pequeño y el resto me devuelve 0.
P.D: Como se ve en el cpp también se debe introducir un valor de k, que será la máxima dimensión del vector resultante. Y mostrar en pantalla los elementos de este vector.
Muchas gracias de antemano.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#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;
a_insertar=aux;
}
}
}
else {
mayores_que[cont]=a_insertar;
}
cont++;
}
i++;
}
for (int i=1; i<=cont; i++) {
cout << mayores_que[i] << " ";
}
return 0;
}
P.D: Como se ve en el cpp también se debe introducir un valor de k, que será la máxima dimensión del vector resultante. Y mostrar en pantalla los elementos de este vector.
Muchas gracias de antemano.
Valora esta pregunta


0