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