Jak vytvořit histogram pomocí programovacího kódu C

Histogram je sloupcový graf, který ukazuje, jak často se každá hodnota vyskytuje v sadě diskrétních hodnot.

Krok 1

Do datové sady vyplňte pole celých čísel s názvem \ "values ​​\" a nastavte proměnnou \ "numvalues ​​\" pro počet hodnot v datové sadě. Ty mohou být generovány náhodně, přečteny ze souboru nebo interaktivně shromážděny od uživatele. V tomto příkladu inicializujete tyto proměnné, když jsou deklarovány: int numvalues ​​= 20 GO int hodnoty [numvalues] = {-3, 2, -2, 4, 5, 4, 2, 5, 4, 5, -1, 2, 3, 4, 7, 4, 2, 0, 7, -3};

Krok 2

Nastavte dvě celočíselné proměnné (i a j), které chcete použít jako iterátory. int i = 0, j = 0;

Krok 3

Probíhá opakováním dat (matice hodnot) a nastavuje proměnnou \ "maxval \" na maximální hodnotu dat. int maxval = 0 GO pro (i = 0; i maxval) maxval = hodnoty [i] GO}

Krok 4

Projděte data a aktivujte proměnnou "minval" v maximální hodnotě dat. int minval = maxval GO pro (i = 0; i <numvalues; i ++) {pokud (hodnoty [i] <minval) minval =

Krok 5

Deklarujte proměnnou \ "freqsize \" pro udržení velikosti frekvenční matice. int freqsize = maxval - minval + 1;

Krok 6

Deklarujte pole, které obsahuje počty frekvencí a inicializujte každý prvek pole na nulu. K dispozici je maticový prvek pro každou možnou hodnotu v datové sadě.

int frekvence [freqsize] GO pro (i = 0; i <freqsize; i ++) {frekvence [i] = 0 GO}

Krok 7

Projděte každou hodnotu v datové sadě a přidejte prvek matice na frekvenci odpovídající této hodnotě. Index odpovídající hodnotě proudu se generuje změnou hodnoty o minimální hodnotu. pro i = 0; i <numvalues; i ++) {int index = hodnoty [i] - minval GO frekvence [index] ++ GO}

Krok 8

Projděte každý prvek ve frekvenční matici. Zobrazuje aktuální hodnotu (vypočtená změnou iterátoru \ "i \" na minimální hodnotu). Vytiskne počet hvězd ( ) odpovídající frekvenci hodnoty proudu smyčkou jedna na hodnotu uloženou ve frekvenční matici a po každém tisku z jedné hvězdy. pro (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 |