ayuda ordenar la catidad de letras repetidas en un string [C]

Iniciado por Xiray, 17 Marzo 2016, 11:38 AM

0 Miembros y 1 Visitante están viendo este tema.

Xiray

hola alguien me podría ayudar con este problema es que tengo que crear un programa para contar la cantidad de letras repetidas hay es un string y ordenarlas de mayor a menor(la cantidad de letras repetidas,no las letras) ahora bien ya tengo echo el codigo de buscar las letras repetidas, mi problema esta en la parte de ordenar que no entiendo mucho eso ya que soy nueva en esto, yo eh tratado de hacer esa parte pero no me sale y buscando en internet a ver como hacerlo pero no entiendo mucho y para el colmo no hay ejemplos.

este es mi codigo de la primera parte
main()
{  int caracter[256];
   char cadena[2000];
   int i, letras_diferentes;
   letras_diferentes=0;
   printf("\t\CUANTAS LETRAS REPETIDAS HAY\n");
   printf("\t\-----------------------------\n");
   printf ("introduzca una frase y aperruche enter para continuar ^u^ \n");
   fflush(stdout);
   gets(cadena);
   for (i=0 ; i<200 ; i++)
   {
      if (cadena[i]<0)
         cadena[i]=(i*-1);
   }
   for (i=0 ; i<256 ; i++)
      caracter[i]=0;
   for (i=0 ; cadena[i] != '\0' ; i++)
      caracter[cadena[i]]++;
      for (i=0 ; i<256 ; i++)
      if (caracter[i] > 0)
         letras_diferentes++;
      printf ("Hay %i caracteres diferentes y estos son: .\n", letras_diferentes);
   for (i = 0 ; i < 256; i++)
      if (caracter[i] > 0)
         printf ("%c repetido= %i \n", i, caracter[i]);

   system ("Pause");


y este es mas o meno el codigo que se supone que debo usar que en si no entiendo nada  :-[

for(i=0; i<256; i++){
for(h=i+1; h<256; h++){
if(caracteres[i]>= caracteres[h]){
maior= caracteres[i];
caracteres[i]=caracteres[h];
caracteres[h]=maior;

.rn3w.

cual es tu logica de usar en el for 256 como limite del contador???