Problema con un simple programa =S

Iniciado por Bob1098, 30 Junio 2014, 15:48 PM

0 Miembros y 1 Visitante están viendo este tema.

Bob1098

Hola a todos. Para empezar, estaba resolviendo un sencillo problema en c++ que consiste en lo siguiente:

Hacer un programa que lea diez valores enteros en un array y los muestre en pantalla. Después que los ordene de menor a mayor y los vuelva a mostrar. Y finalmente que los ordene de mayor a menor y los muestre por tercera vez. Para ordenar la lista usar una función que implemente el método de la burbuja y que tenga como parámetro de entrada el tipo de ordenación, de mayor a menor o de menor a mayor. Para el array usar una variable global.

Fácil no?. He utilizado el método de la burbuja para ello, utilizando una librería creada por mi que contiene una función que implementa el método de la burbuja. Ya la había probado antes y funcionaba perfectamente. Ahora bien, resulta que cuando he ido a usarla, me ha ocurrido lo siguiente:


En fin, como se puede observar al introducir la lista de 10 números que yo he tecleado, el programa me muestra otra lista con varios 0 y un gran numero. Y ya a partir de ahí se desmorona todo. Lo que entiendo es como el programa no lee la lista adecuadamente... Este es el código:
Código (cpp) [Seleccionar]
/*2.Hacer un programa que lea diez valores enteros en un array y los muestre en pantalla.
Después que los ordene de menor a mayor y los vuelva a mostrar.
Y finalmente que los ordene de mayor a menor y los muestre por tercera vez.
Para ordenar la lista usar una función que implemente el método de la burbuja y
que tenga como parámetro de entrada el tipo de ordenación, de mayor a menor o de menor a mayor.
Para el array usar una variable global. */

#include <iostream>
#include <Arrays.h>

using namespace std;

int main() {
int lista[10], i;

cout << "Introduce 10 valores enteros: " << endl;
for(i=0; i<=9; i++) {
cin >> lista[10];
}

cout << "\nLista original: " << endl;
for(i=0; i<=9; i++) {
cout << lista[i] << " ";
}

ordVect(lista, 10, 0);
cout << "\nLista de menor a mayor: " << endl;
for(i=0; i<=9; i++) {
cout << lista[i] << " ";
}

ordVect(lista, 10, 1);
cout << "\nLista de menor a mayor: " << endl;
for(i=0; i<=9; i++) {
cout << lista[i] << " ";
}

cin.get();
return 0;
}


Espero con curiosidad sus respuestas...

Un saludo

Blaster

Esto:

Código (cpp) [Seleccionar]
cin >> lista[10];

Deberia quedar asi:

Código (cpp) [Seleccionar]
cin >> lista[i];

Bob1098

Que cosa mas tonta xd. No he dicho nada.


Gracias por tu ayuda =)

engel lex

Esos errores muchas veces se le pasan a uno, porque uno algunas veces es ciego a su propio código (estas tan convencido que esta bien o cansado que no ves los errores) recomiendo aprender a usar el debugger
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

eferion

Cita de: engel lex en  1 Julio 2014, 15:24 PM
Esos errores muchas veces se le pasan a uno, porque uno algunas veces es ciego a su propio código (estas tan convencido que esta bien o cansado que no ves los errores) recomiendo aprender a usar el debugger

y test unitarios.