Bueno lo que pretendo hacer es como se vera ordenar 10 enteros en forma ascendente, no tengo errores de compilación pero parecería que el compilador me informa que estoy intentando escribir(o leer) en alguna parte de la memoria que no esta disponible.-
les aseguro que hace unas cuantas horas que le doy vueltas al asunto y tengo la cabeza embotada y no encuentro la solución.-
Código:
Espero ayuda y gracias x el tiempo.-#include <stdio.h> #include <stdlib.h> int main(void) { int orden[12]= {44, 66, 5, 18, 20, 33, 99, 51, 16, 81, 44, 0},aUno,aDos,auxUno=1,auxDos; /* char * enteros[10] = {"Primer ", "Segundo", "Tercer ", "Cuarto ", "Quinto ", "Sexto ", "Septimo", "Octavo ", "Noveno ", "Ultimo "}; for(aUno=0; aUno<10; aUno++) { printf("\n\tIngrese %s entero...:",enteros[aUno]); scanf("%d",&orden[aUno]); } */ /*La explicación es teniendo en cuenta la primer iteración auxUno es para no pasar mas de una ves x el número ya ordenado/* for(aUno=0; aUno<10; aUno++) { orden[11]=orden[aUno]; for(aDos=auxUno; aDos<10-auxUno; aDos++) { if ( orden[aUno] < orden[11] ) { orden[11]=orden[aUno]; /*guardo el menor (5)*/ auxDos=aDos; /*guardo el orden donde encontré el menor[2]*/ orden[12]=aUno; /*guardo el número para intercambiar(44)*/ } } orden[aUno]=orden[11]; /*guardo el menor (5 -> orden[0])*/ orden[auxDos]=orden[12]; /*intercambio los números (en el orden[2] pongo el 44*/ auxUno++; } for(aUno=0; aUno<10; aUno++) { printf("\n\tNumeros ordenados %d",orden[aUno]); } return 0; }
Saludos.
Daniel