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 49 50 51 52 53 54
| #include <stdio.h>
int main(void)
{
int a, i, j;
int tab[26];
for ( i = 0; i <26; i++)
tab[i] = 0;
while ( ( a = getchar() ) != EOF )
{
/* Medinoc: Utiliser les caractères plutot que leur code ASCII, non?
Et c'est <= et non =<
if (( a >= 97) && (a =< 122) )
*/
if((a >= 'a') && (a <= 'z'))
tab[a-'a']++;
}
for ( j = 0 ; j < 26 ; j++ )
{
/* Medinoc: Les caractères ne sont pas supposés être séparés
dans l'affichage de ton histogramme: Pourquoi les séparer ici?
printf("%c :", j+97);
*/
putchar(j+97);
}
printf("\n");
/* Medinoc: attention au while pour un j pas explicitement initialisé.
Enfin, ici, c'est bon, puisque j=26 */
while(j!=0)
{
j=0;
for(i=0 ; i<26 ; i++)
{
if (tab[i])
{
j++;
tab[i]--;
printf( "|" );
}
else
{
printf(" ");
}
}
/* Medinoc: Après chaque ligne,
il serait une bonne idée de passer à la ligne suivante... */
putchar('\n');
}
return 0;
} |
Partager