[ Foro de C ]

Ordenar cantidad de caracteres

29-Jul-2015 12:54
Invitado (Blast06)
1 Respuestas

Saludos.

Tengo un problema, estoy haciendo un algoritmo para contar la cantidad de veces que se repite cada caracter en una frase introducida por teclado, y a parte de eso, ordenar los caracteres de mayor a menor, en esto ultimo es que tengo problemas, miren:

 
#include <stdio.h>
#include <string.h>
void contar(char frase[], char abecedario[],int i);
int main ()
{
    char abecedario[26] = "abcdefghijklmnopqrstuvwxyz", frase[30];
    int i, caracteres;
    printf("introduce frase\n");
    fgets(frase, 30, stdin);
 
    caracteres = strlen(frase);
 
    for  (i = 0; i < 25; i++)
        contar(frase, abecedario, i);
    return 0;
}
 
void contar(char frase[], char abecedario[], int i)
{
    int j, num,contador,mayor,l=99, aux;
    char letra;
    contador = 0;
    num = strlen(frase);
 
    for (j = 0; j < num-1; j++)
    {
        if (frase[j] == abecedario[i])
        {
                contador+=1;
                letra = abecedario[i];
 
          // aquí es donde tiene que estar el problema
  if (frase[j]> abecedario[i])
                aux= frase[j];
                frase[j]= abecedario[i];
                abecedario[i]= aux;
 
        }
 
 
    }
    if (contador != 0)
        printf("el numero de letras %c es %d\n", letra, contador);
 
    }
 




31-Jul-2015 12:13
Nacho Cabanes (+30)

Ese "if" parece que pretenda hacer 3 cosas distintas... pero no tiene llaves, por lo que sólo la primera de esas tres órdenes se realizará cuando se cumpla la condición.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)