Cum se creează o histogramă utilizând codul de programare C

O histogramă este un graf de bare care arată cât de des apare fiecare valoare într-un set de valori discrete.

Pasul 1

Completați un set de numere întregi numite \ "values ​​\" cu setul de date și setați variabila \ "numvalues ​​\" pentru numărul de valori din setul de date. Acestea pot fi generate aleatoriu, citite dintr-un fișier sau colectate interactiv de la utilizator. În acest exemplu, inițializați aceste variabile atunci când sunt declarate: int numvalues ​​= 20 GO int valori [numvalues] = {-3, 2, -2, 4, 5, 4, 2, 5, 4, 5, -1, 2, 3, 4, 7, 4, 2, 0, 7, -3};

Pasul 2

Configurați două variabile întregi (i și j) pentru a fi folosite ca iteratori. int i = 0, j = 0;

Pasul 3

Se iterează prin date (matricea de valori) și stabilește variabila \ "maxval \" la valoarea maximă a datelor. int maxval = 0 GO pentru (i = 0; i maxval) maxval = valori [i] GO}

Pasul 4

Treceți prin date și activați variabila "minval" în valoarea maximă a datelor. int minval = maxval GO pentru (i = 0; i <nume valori; i ++) {if (valori [i] <minval) minval =

Pasul 5

Declarați o variabilă "freqsize" pentru a menține dimensiunea matricei de frecvență. int freqsize = maxval - minval + 1;

Pasul 6

Declarați o matrice care conține numărul de frecvențe și inițializați fiecare element al matricei la zero. Există un element de matrice pentru fiecare valoare posibilă din setul de date.

int frecvență [freqsize] GO pentru (i = 0; i <freqsize; i ++) {frecvența [i] = 0 GO}

Pasul 7

Treceți prin fiecare valoare din setul de date, adăugând un element al matricei la frecvența corespunzătoare acelei valori. Indicele corespunzător valorii curentului este generat prin modificarea valorii prin valoarea minimă. pentru (i = 0; i <numvaluri; i ++) {int index = valori [i] - minval GO frecvență [index] ++ GO}

Pasul 8

Treceți prin fiecare element din matricea de frecvență. Afișează valoarea curentă (calculată prin schimbarea iteratorului \ "i \" la valoarea minimă). Tipărește numărul de stele ( ) care corespund frecvenței valorii curentului printr-o buclă de unu la valoarea stocată în matricea de frecvență, imprimând de fiecare dată câte o singură stea. pentru (i = 1; i <= freqsize; i ++) {printf (\ "% 2d \ t | \, i + minval) " \") GO} printf (\ "\ n \") GO}

 The example data set provided earlier will print the following histogram: 

-3 | -2 | -1 | 0 | * 1 | 2 | * 3 | 4 | 5 | 6 | 7 |