Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Bob1098 en 30 Junio 2014, 15:48 pm



Título: Problema con un simple programa =S
Publicado por: Bob1098 en 30 Junio 2014, 15:48 pm
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:
(http://subefotos.com/ver/?4b1f4b3df2e7520a746cee571f6292aco.png)

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
  1. /*2.Hacer un programa que lea diez valores enteros en un array y los muestre en pantalla.
  2. Después que los ordene de menor a mayor y los vuelva a mostrar.
  3. Y finalmente que los ordene de mayor a menor y los muestre por tercera vez.
  4. Para ordenar la lista usar una función que implemente el método de la burbuja y
  5. que tenga como parámetro de entrada el tipo de ordenación, de mayor a menor o de menor a mayor.
  6. Para el array usar una variable global. */
  7.  
  8. #include <iostream>
  9. #include <Arrays.h>
  10.  
  11. using namespace std;
  12.  
  13. int main() {
  14. int lista[10], i;
  15.  
  16. cout << "Introduce 10 valores enteros: " << endl;
  17. for(i=0; i<=9; i++) {
  18. cin >> lista[10];
  19. }
  20.  
  21. cout << "\nLista original: " << endl;
  22. for(i=0; i<=9; i++) {
  23. cout << lista[i] << " ";
  24. }
  25.  
  26. ordVect(lista, 10, 0);
  27. cout << "\nLista de menor a mayor: " << endl;
  28. for(i=0; i<=9; i++) {
  29. cout << lista[i] << " ";
  30. }
  31.  
  32. ordVect(lista, 10, 1);
  33. cout << "\nLista de menor a mayor: " << endl;
  34. for(i=0; i<=9; i++) {
  35. cout << lista[i] << " ";
  36. }
  37.  
  38. cin.get();
  39. return 0;
  40. }

Espero con curiosidad sus respuestas...

Un saludo


Título: Re: Problema con un simple programa =S
Publicado por: Blaster en 30 Junio 2014, 16:00 pm
Esto:

Código
  1. cin >> lista[10];

Deberia quedar asi:

Código
  1. cin >> lista[i];


Título: Re: Problema con un simple programa =S
Publicado por: Bob1098 en 1 Julio 2014, 15:04 pm
Que cosa mas tonta xd. No he dicho nada.


Gracias por tu ayuda =)


Título: Re: Problema con un simple programa =S
Publicado por: 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


Título: Re: Problema con un simple programa =S
Publicado por: eferion en 1 Julio 2014, 15:56 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.