Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/06/2011, 14:36
Bladsmickey
 
Fecha de Ingreso: enero-2011
Mensajes: 33
Antigüedad: 13 años, 3 meses
Puntos: 0
Ordenamiento de letras En C?

Código C:
Ver original
  1. #include <stdio.h>
  2. #define p printf
  3. #define s scanf
  4.  
  5. void reordenar(char x[]){
  6.     int i,i2;
  7.     char temp;
  8.  
  9.     for (i2='A' ; i2< 'I' ; i2++){
  10.         for (i=(i2+1) ; i< 'J' ; i++)
  11.             if(x[i] < x[i2]){
  12.                 temp=x[i2];
  13.                 x[i2]=x[i];
  14.                 x[i]=temp;
  15.             }
  16.     }}
  17.  
  18. main(){
  19.     int i;
  20.     char x[10];
  21.  
  22.     for(i='A' ; i<'J' ; i++){
  23.         p("Introduzca Una Letra: \n");
  24.         s("%s", &x[i]);
  25.     }
  26.  
  27.     p("----Lista Organizada----\n");
  28.  
  29.     reordenar(x);
  30.  
  31.     for(i='A' ; i<'J' ; i++){
  32.         p("%c\n", x[i]);
  33.     }
  34.  
  35.     s("%d");
  36. }

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
  1. #include <stdio.h>
  2. #define p printf
  3. #define s scanf
  4.  
  5. void reordenar(char n, char x[]){
  6.     int i,i2;
  7.     char temp;
  8.  
  9.     for (i2='A' ; i2< n-1 ; i2++){
  10.         for (i=(i2+1) ; i< n ; i++)
  11.             if(x[i] < x[i2]){
  12.                 temp=x[i2];
  13.                 x[i2]=x[i];
  14.                 x[i]=temp;
  15.             }
  16.     }}
  17.  
  18. main(){
  19.     int i;
  20.     char x[10];
  21.     char n;
  22.  
  23.     p("Hasta que letra deben ser ordenados: ");
  24.     s("%c", &n);
  25.  
  26.     for(i='A' ; i < n ; i++){
  27.         p("Introduzca Una Letra: \n");
  28.         s("%s", &x[i]);
  29.     }
  30.  
  31.     p("----Lista Organizada----\n");
  32.  
  33.     reordenar(n,x);
  34.  
  35.     for(i='A' ; i<'J' ; i++){
  36.         p("%c\n", x[i]);
  37.     }
  38.  
  39.     s("%d");
  40. }

Pero el programa se queda en un bucle en el primer for, espero me ayuden, Saludos!