Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: octavioxd en 11 Agosto 2014, 20:53 pm



Título: Resultado distintos en diferentes compiladores
Publicado por: octavioxd en 11 Agosto 2014, 20:53 pm
Hola a todos, he hecho un algoritmo simple de ordenamiento en c++ y cuando lo ejecuto en zinjai lo ordena mal en cambio si lo hago en http://www.compileonline.com/  lo ordena bien, a que se debe esto?


Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main(int argc, char *argv[]) {
  5. const int TAM = 4;
  6. int listado[TAM];
  7. listado[1] = 11;
  8. listado[2] = 13;
  9. listado[3] = 53;
  10. listado[4] = 12;
  11. int temp;
  12. for(int x = 1; x < TAM; x++){
  13. for(int s = 1; s < TAM; s++){
  14. if(listado[s] > listado[s+1]){
  15. temp = listado[s];
  16. listado[s] = listado[s+1];
  17. listado[s+1] = temp;
  18. }
  19.  
  20. }
  21. }
  22. for(int g = 1; g < 5; g++){
  23. cout << listado[g] << endl;
  24. }
  25. return 0;
  26. }
  27.  
  28.  


Título: Re: Resultado distintos en diferentes compiladores
Publicado por: leosansan en 11 Agosto 2014, 22:38 pm
Tienes un problema con eso de empezar los for desde "1" ya que las posiciones del arrray van desde cero hasta TAM-1 de forma que el listado[4] = 12 se "sale" del tamaño del array que va de 0 a 3.

Vamos que sería:

Código
  1. ************************************
  2.  
  3. listado[0] = 11;
  4. listado[1] = 13;
  5. listado[2] = 53;
  6. listado[3] = 12;
  7.  
  8. ********************************************
  9.  
  10.        for(int x = 0; x < TAM; x++)
  11.          for(int s = 0; s < TAM-1; s++){
  12.  
  13. ********************************************
  14.  
  15. for(int g = 0; g < TAM; g++)
  16.  
  17. ********************************************
  18. }
  19.  

¡¡¡¡ Saluditos! ..... !!!!


(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)