IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

barres verticales


Sujet :

C

  1. #1
    Provisoirement toléré
    Inscrit en
    Octobre 2002
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 214
    Points : 33
    Points
    33
    Par défaut barres verticales
    Bonsoir , voici un programme qui doit m'afficher un histogramme VERTICAL de la longueur des mots rencontrés en entrée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    #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 ) 
      	      { 
      	        if (( a >= 97) && (a =< 122) ) 
      	         tab[a-'a']++; 
      	      } 
     
      	    for ( j = 0; j < 26; j++ ) 
      	    { 
      	        printf("%c :", j+97); 
      	    } 
      	        printf("\n"); 
      	while(j!=0) 
      	{ 
      	         j=0; 
      	         for(i=0;i<26;i++) 
      	         { 
      	                 if (tab[i]) 
      	                   { 
      	                    j++; 
      	                    tab[i]--; 
      	                    printf( "|" ); 
      	                   } 
     	                 else 
     	          { 
      	            printf(" "); 
      	          } 
      	          } 
      	} 
      	return 0; 
    }
    et vous remarquerez qu'à l'exécution de se programme , je n'ai pas eaxcement l'histogramme voulu...si quelqu'un voit où est le problème...
    merci

  2. #2
    Provisoirement toléré
    Inscrit en
    Octobre 2002
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 214
    Points : 33
    Points
    33
    Par défaut
    pardon il doit m'afficher un histogramme de la fréquence des lettres rencontrées en entrée .

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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;
    }

  4. #4
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Médinoc
    /* Medinoc: Utiliser les caractères plutot que leur code ASCII, non?
    Et c'est <= et non =<
    if (( a >= 97) && (a =< 122) )
    */
    Je lui avais déjà signalé tout ça dans d'autres interventions,

    http://www.developpez.net/forums/vie...399020#2399020

    mais visiblement, il est bouché à l'émeri. J'ai renoncé...

  5. #5
    Provisoirement toléré
    Inscrit en
    Octobre 2002
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 214
    Points : 33
    Points
    33
    Par défaut
    non emmanuel ce n'est pas çà , c'est que je me sens plus à l'aise avec les codes numériques ascii qu'avec les lettres , mais pour des programmes plus gros , j'utiliserai plutot des macros ou des lettres .

  6. #6
    Provisoirement toléré
    Inscrit en
    Octobre 2002
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 214
    Points : 33
    Points
    33
    Par défaut
    merci medinoc , çà marche presque , mais si tu compiles et exécutes le code tu remarqueras que les barres ne sont pas exactement en dessous des lettres , elles sont un peu décalées , rapprochées...

  7. #7
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Bibouda
    non emmanuel ce n'est pas çà , c'est que je me sens plus à l'aise avec les codes numériques ascii qu'avec les lettres ,
    Bizarre, t'es monté à l'envers ?
    mais pour des programmes plus gros , j'utiliserai plutot des macros ou des lettres .
    Les 'lettres' (constantes caractères) sont faites pour ça. Et c'est pas une question de taille de programme. Il est recommandé de programmer correctement dès le premier jour.

  8. #8
    Provisoirement toléré
    Inscrit en
    Octobre 2002
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 214
    Points : 33
    Points
    33
    Par défaut
    possible que je sois monté à l'envers lol , sinon pour la 2eme partie de mon code j'ai été fortement aidé , et j'aimerais vraiment savoir ce que représente le j et quel est son rôle dans le programme , j'ai une vague idée mais sans plus , merci .

Discussions similaires

  1. Réponses: 23
    Dernier message: 17/09/2008, 10h01
  2. la barre verticale
    Par ikhor dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 20/08/2008, 12h24
  3. Enlever barre verticale liste déroulante
    Par Jaymerry dans le forum VBA Access
    Réponses: 1
    Dernier message: 05/06/2008, 08h54
  4. [Tableaux] - Barre verticale (slider)
    Par jgx342 dans le forum Langage
    Réponses: 1
    Dernier message: 16/02/2007, 23h23
  5. [VBA-E] barre verticale dans un graphique
    Par Igloobel dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 02/02/2006, 22h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo