1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| # include <stdio.h>
char retourChar (char*);
int main (void)
{
char chaine [] = "ABNDHNKBBBVFJBBFKJDBBBBBBB"; /* chaine à l'entrée */
char lettre;
lettre = retourChar (chaine);
printf ("La lettre la plus courrante est : %c\n", lettre);
return 0;
}
char retourChar (char chaine[])
{
char lettre;
char alphabet [] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; /* alphabet */
int tampon, i, j, tab[26];
for (i=0 ; i<26 ; i++) /* initialisation à 0 de l'ensemble du tableau */
tab[i]=0;
i=0;
while (chaine[i] != '\0')
{
for (j=0 ; j<26 ; j++)
{
if (chaine[i] == alphabet[j])
tab[j] ++;
}
i++;
}
for (i=0 ; i<26 ; i++) /* tri à bulle */
{
for (j=(i+1) ; j<26 ; j++)
{
if (tab[j] >= tab[i])
{
tampon=tab[i];
tab[i]=tab[j];
tab[j]=tampon;
lettre=alphabet[i]; /* on fait la même chose avec la chaîne ... les éléments de tab correspondant aux lettres de l'alphabet par leur indice */
alphabet[i]=alphabet[j];
alphabet[j]=lettre;
}
}
}
return alphabet[0]; /* La première lettre de la chaine alphabet sera la plus courrante grâce au tri à bulle */
} |
Partager