Practico 0. Ejercicio 6. Ordenar arreglo

Re: Practico 0. Ejercicio 6. Ordenar arreglo

de Fernando Fernandez -
Número de respuestas: 0
Hola Alan.
Hay varios problemas.
  • Los índices de los arreglos en C empiezan en 0, por lo que deberías trabajar con índices entre 0 y  LARGOLISTA -1. El índice LARGOLISTA está fuera del rango.
  • El parámetro que estás pasando, &arr[LARGOLISTA], es la dirección de memoria de la casilla de índice LARGOLISTA] de arr. O sea que estarías ordenando algo que está después del arreglo. Lo que tendrías que pasar es arr.
  • Usás una diferencia de 1 entre el tamaño del arreglo y la cantidad de elementos. Tal vez hayas visto algo así, pero relaconado con strings, y es al revés, el tamaño del arreglo debe ser mayor que el largo del string. Esto es porque las bibliotecas estándar de C usan un caracter centinela, el '\0', como indicador del fin del string. Pero de todas formas esto no se aplica a los arreglos de enteros, porque en general no podemos asumir que hay un valor imposible.
  • En cuanto al algoritmo OrdenarArreglo tenés que volver a revisar los valores de inicio y de control que les das a i y j teniendo en cuenta el tema mencionado más arriba del rango de los índices en C.
  • Nunca se ejecuta el cuerpo del while porque como antes de empezarlo i y j son iguales, el segundo operando del and no se cumple.  No es ListaEnteros[i] lo que debe ir ahí.
  • Aún si se entrara al cuerpo del while, como el j-- está fuera de ese cuerpo, es posible que se cuelgue haciendo intercambios entre ListaEnteros[j] y ListaEnteros[j-1] .
Fijate si teniendo en cuenta algo de esto la ejecución del programa emipieza a tener efectos.