Código C:
Ver original
#include <stdio.h> #define p printf #define s scanf void reordenar(char x[]){ int i,i2; char temp; for (i2='A' ; i2< 'I' ; i2++){ for (i=(i2+1) ; i< 'J' ; i++) if(x[i] < x[i2]){ temp=x[i2]; x[i2]=x[i]; x[i]=temp; } }} main(){ int i; char x[10]; for(i='A' ; i<'J' ; i++){ p("Introduzca Una Letra: \n"); s("%s", &x[i]); } p("----Lista Organizada----\n"); reordenar(x); for(i='A' ; i<'J' ; i++){ p("%c\n", x[i]); } s("%d"); }
Ese ejercicio Funciona perfecto, pero agarra hasta 10 letras, puede agarrar mas si lo modifico, pero lo que quiero es que funcione hasta donde el usuario especifique, hasta ahora tengo esto:
Código C:
Ver original
#include <stdio.h> #define p printf #define s scanf void reordenar(char n, char x[]){ int i,i2; char temp; for (i2='A' ; i2< n-1 ; i2++){ for (i=(i2+1) ; i< n ; i++) if(x[i] < x[i2]){ temp=x[i2]; x[i2]=x[i]; x[i]=temp; } }} main(){ int i; char x[10]; char n; p("Hasta que letra deben ser ordenados: "); s("%c", &n); for(i='A' ; i < n ; i++){ p("Introduzca Una Letra: \n"); s("%s", &x[i]); } p("----Lista Organizada----\n"); reordenar(n,x); for(i='A' ; i<'J' ; i++){ p("%c\n", x[i]); } s("%d"); }
Pero el programa se queda en un bucle en el primer for, espero me ayuden, Saludos!