Estoy en un verdadero inconveniente con esto de ordenar un arreglo, no pretendo redescubrir la rueda, simplemente estoy practicando y hace mucho tiempo se me antojó esta manera de ordenar pero no logro que funcione.-
Con respecto a la cantidad de elementos del arreglo y hacerlo en una función luego lo arreglo, el tema es que alguna mente iluminada me diga dónde está el error.-
Debo aclarar que en algunos casos funciona, me parece que el error se produce cuando el menor/mayor arrancan muy cerca de los extremos.-
Código
#include <stdio.h> void mostrar(int numeros[]); int main(void){ int numeros[] = {77,58,7,19,62,99,44,49,15,33}; int menor=9999, mayor=0, pos_men=0, pos_may=0, men_cam=0, may_cam=0,i, j=0, m=9; mostrar(numeros); for(i=0; i<5; i++){ men_cam = numeros[i]; may_cam = numeros[m]; for(j=i; j<=m; j++){ if(numeros[j] < menor){ menor = numeros[j]; pos_men = j; } if(numeros[j] > mayor){ mayor = numeros[j]; pos_may = j; } } numeros[i] = menor; numeros[pos_men] = men_cam; numeros[m] = mayor; numeros[pos_may] = may_cam; mostrar(numeros); menor=9999; mayor=0; m--; } mostrar(numeros); return 0; } void mostrar(int numeros[]){ int t; for(t=0; t<10; t++){ } }
Bueno espero ayuda.-
Saludos.
Daniel