Affichage histogramme en c

Fermé
frez - Modifié par frez le 8/02/2016 à 19:53
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 - 10 févr. 2016 à 21:52
Bonjour,
je bloque sur un programme qui construit un histogramme.Je l'ai fait mais j'ai l'affichage inverse de ce qui est demandée,voici l'énoncé complet:
On se propose de construire un histogramme décrivant la répartition des valeurs des
éléments d’un vecteur tel que celui-ci :
{ 2, 3, 7, 6, 9,11,12,15,18,17, 14,13,12, 7, 8, 7, 5, 3, 2, 1, 1, 0, 2, 8,11,13,12,11, 6, 3};
Le programme affichera l’histogramme dans la fenêtre du terminal, en utilisant des blancs et des étoiles.
1. Écrire une fonction dont le prototype est : void histog(int v[], int nb)
2. Modifier le programme afin de pouvoir choisir la hauteur de l’histogramme. Le
prototype devient : void histog(int v[], int nb, int H).



voici mon code source:


#include <stdio.h>
#include <stdlib.h>

void histog(int v[], int nb)
{
int i,j,k;
for(i=0;i<nb;i++)
{
k=v[i];
for(j=0;j<k+1;j++)
{

printf("*");

}
printf("\n");

}

}
int main()
{
int v[]={2,3,7,6,9,11,12,15,18,17,14,13,12,7,8,7,5,3,2,1,1,0,2,8,11,13,12,11,6,3};
histog(v,30);


return 0;
}


4 réponses

Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
Modifié par Dalfab le 8/02/2016 à 20:41
Bonjour,

Qu'est-ce que tu appelles l'affichage inverse?
Le programme trace bien l'histogramme (avec 2*, puis 3*, ...)

Mais l'énoncé semble indiquer qu'il faudrait plutôt (1 espace+étoile, 2espaces + étoile, ...)
0
En fait, il faut afficher 3 étoiles de maniere verticale,ensuite 4 étoiles,toujours de maniere verticale et ainsi de suite.Or moi j'ai l'affichage de maniere horizontale.
c'est a dire comme ça:
°°°
°°°°
°°°°°°°°
l'affichage doit se faire verticalement.
0