Jak utworzyć histogram za pomocą kodu programowania C

Histogram to wykres słupkowy pokazujący, jak często każda wartość występuje w zbiorze dyskretnych wartości.

Krok 1

Wypełnij tablicę liczb całkowitych nazywaną \ "wartościami \" za pomocą zestawu danych i ustaw zmienną \ "numvalues ​​\" na liczbę wartości w zbiorze danych. Mogą być generowane losowo, czytane z pliku lub odbierane interaktywnie od użytkownika. W tym przykładzie należy zainicjować te zmienne, gdy są one zadeklarowane: int wartości_zmiennych = 20 wartości GO int [wartości liczbowe] = {-3, 2, -2, 4, 5, 4, 2, 5, 4, 5, -1, 2, 3, 4, 7, 4, 2, 0, 7, -3};

Krok 2

Skonfiguruj dwie zmienne całkowite (i i j), które będą używane jako iteratory. int i = 0, j = 0;

Krok 3

Wykonuje iterację poprzez dane (macierz wartości) i ustawia zmienną \ "maxval \" na maksymalną wartość danych. int maxval = 0 GO dla (i = 0; i maxval) maxval = wartości [i] GO}

Krok 4

Przejrzyj dane i aktywuj zmienną "minval" w maksymalnej wartości danych. int minval = maxval GO dla (i = 0; i <liczba wartości; i ++) {jeśli (wartości [i] <minval) minval = wartości [i] GO}

Krok 5

Zadeklaruj zmienną \ "freqsize \", aby zachować rozmiar macierzy częstotliwości. int freqsize = maxval - minval + 1;

Krok 6

Deklaracja tablicy zawierającej liczniki częstotliwości i inicjalizacja każdego elementu tablicy do zera. W zestawie danych znajduje się element macierzowy dla każdej możliwej wartości.

int częstotliwość [freqsize] GO dla (i = 0; i <freqsize; i ++) {częstotliwość [i] = 0 GO}

Krok 7

Przechodzi każdą wartość w zbiorze danych, dodając element macierzy do częstotliwości odpowiadającej tej wartości. Indeks odpowiadający wartości prądu generowany jest przez zmianę wartości o minimalną wartość. dla (i = 0; i <wartości liczbowe; i ++) {int index = wartości [i] - minval GO frequency [indeks] ++ GO}

Krok 8

Przejdź przez każdy element w macierzy częstotliwości. Wyświetla bieżącą wartość (obliczoną przez zmianę iteratora \ "i \" na wartość minimalną). Drukuje liczbę gwiazdek ( ) odpowiadającą częstotliwości prądu za pomocą pętli o wartości jeden przechowywanej w macierzy częstotliwości, za każdym razem drukując z jednej gwiazdy. for (i = 1; i <= freqsize; i ++) {printf (\ "% 2d \ t | \", i + minval) GO dla (j = 0; j <częstotliwość [i]; j ++) {printf (\ " \") 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 |