Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Ordenando array con el metodo burbuja

Estas en el tema de Ordenando array con el metodo burbuja en el foro de C/C++ en Foros del Web. Buenas tardes distinguida comunidad, tengo un pequeño error que de nuevo he leido por horas y buscado el error hasta no poder conseguirlo el problema ...
  #1 (permalink)  
Antiguo 20/01/2014, 10:41
 
Fecha de Ingreso: junio-2009
Ubicación: House
Mensajes: 38
Antigüedad: 15 años, 5 meses
Puntos: 1
Ordenando array con el metodo burbuja

Buenas tardes distinguida comunidad, tengo un pequeño error que de nuevo he leido por horas y buscado el error hasta no poder conseguirlo el problema es el siguiente estoy haciendo un arreglo de 10 elementos, posteriormente lo mostrare desordenado y luego ordenado, cuando lo imprimo desordenado imprime a la perfeccion el problema radica cuando lo ordeno el resultado es erroneo y no consigo el error pense que podian darme una mano gracias de antemano, dejo el codigo:

Cita:
#include <stdio.h>
#include <conio.h>

main()
{
int A[10],B[10],i,j,temp;

printf("Ingrese los elementos del vector \n");

//INGRESAR ELEMENTOS DEL VECTOR//

for (i=1;i<=10;i++)
{
printf("%d = ",i);
scanf("%d",&A[i]);
}

// GUARDANDO VECTOR DESORDENADO //


for (i=1;i<=10;i++)
{
B[i]=A[i];
}

//ORDENANDO VECTOR//

for (i=1;i<=10;i++)
for (j=i+1;j<=10;j++)
{
if(A[i]>=A[j])
temp=A[j];
A[j]=A[i];
A[i]=temp;
}

// MOSTRAR VECTORES //


for (i=1;i<=10;i++)
{
printf("%d ",B[i]);
}

for (i=1;i<=10;i++)
{
printf("%d ",A[i]);
}

getch();
}
  #2 (permalink)  
Antiguo 20/01/2014, 11:12
 
Fecha de Ingreso: junio-2009
Ubicación: House
Mensajes: 38
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Ordenando array con el metodo burbuja

Luego de analizar el codigo me di cuenta que me faltaban unas llaves en el if

Cita:
for (i=1;i<=10;i++)
for (j=i+1;j<=10;j++)
{
if(A[i]>=A[j])
{
temp=A[j];
A[j]=A[i];
A[i]=temp;
}
}
Gracias y disculpen......
  #3 (permalink)  
Antiguo 24/01/2014, 07:06
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 14 años, 6 meses
Puntos: 73
Respuesta: Ordenando array con el metodo burbuja

Un detallito importante: En C/C++, los índices de los arreglos van de 0 a N-1, es decir, si (como es tu caso) has declarado los arreglos A y B de 10 elementos, los índices deben ir de 0 a 9, no de 1 a 10. En tu programa, estás leyendo/escribiendo más allá del espacio asignado al arreglo. En programas pequeños como el tuyo puede que no pase nada o, simplemente, dar algún resultado erróneo, pero en programas más grandes (y no mucho más grandes) lo normal es que te encuentres, al ejecutar el programa, con mensajes de error del tipo "Access violation" o "Segmentation fault" (y son errores fatales que suponen la terminación inmediata del programa. En algún caso puede llegar a suponer que la máquina se bloquee). Así, en tus bucles, basta con cambiar

for (i=1; i<=10; i++)

por


for (i=0; i<10; i++)

Saludos,
  #4 (permalink)  
Antiguo 24/01/2014, 16:38
 
Fecha de Ingreso: junio-2009
Ubicación: House
Mensajes: 38
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Ordenando array con el metodo burbuja

Gracias por el consejo lo tendre en cuenta.

Etiquetas: burbuja, int, metodo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:08.