Un istogramma testuale ... ****** ** ********* **** ****** ************* ***
/* istogramma */ #include-- MarcoEsposito - 25 Nov 2002#define SIZE 20 /* dimenzione massima degli elementi dell'istogramma */ #define RANGE 11 /* quante righe ha l'istogramma */ /* desc: Questo istogramma sara' visualizzato per righe invece che per colonne, * il RANGE, e' il numero massimo di righe(colonne) dell'istogramma, * percio' non possiamo inserire valori fuori dal RANGE che sar� da * 0 a RANGE */ int main() { int valori[SIZE] = {0}; int frequenze[RANGE] = {0}; int i, j; /* Memorizzo i valori nel vettore */ for(i = 0; i < SIZE; i---++) scanf("%d",&valori[i]); /* Controllo elemento per elemento se ho inserito valori fuori dal RANGE * e se il valore e' giusto, vado a incrementare nel vettore dell'istogramma * l'elemento nella posizione del valore stesso. Questo passo puo' sembrare difficile * ma non e' come sembra. Esempio: valori[4] = 5 incremento frequenze[5]---++ */ for(i = 0; i < SIZE; i---++) { if(valori[i] >= 0 && valori[i] <= RANGE) frequenze[valori[i]]---++; } /* Stampo gli asterischi uno alla volta usando una for annidata, che cicla di quante volte * ho incrementato l'elemento della frequenza, in oltre prima della righa degli asterischi * stampo la riga e il valore della riga */ for(i = 0; i < RANGE; i---++) { printf("%d %d ", i, frequenze[i]); for(j = 0; j < frequenze[i]; j---++) { printf("*"); } printf("\n"); } return 0; }
![]() |
![]() |
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica ![]() |
|
![]() |
![]() |