Как да създадете хистограма с помощта на програмния код C
Стъпка 1
Попълнете масив от числа, наречен \ "стойности \", с набора от данни и задайте променливата \ "numvalues \" за броя на стойностите в комплекта от данни. Те могат да се генерират произволно, да се четат от файл или да се събират интерактивно от потребителя. В този пример инициализирате тези променливи, когато са декларирани: int numvalues = 20 GO int стойности [num values] = {-3, 2, -2, 4, 5, 4, 2, 5, 4, 5, -1, 2, 3, 4, 7, 4, 2, 0, 7, -3};
Стъпка 2
Настройте две целочислени променливи (i и j), които да използвате като итератори. int i = 0, j = 0;
Стъпка 3
Той итетира чрез данните (матрицата на стойността) и задава променливата \ "maxval \" до максималната стойност на данните. int maxval = 0 GO за (i = 0; i maxval) maxval = стойности [i] GO}
Стъпка 4
Прегледайте данните и активирайте променливата "minval" в максималната стойност на данните. int minval = maxval GO за (i = 0; i <номерата; i ++) {ако (стойности [i] <minval) minval =
Стъпка 5
Декларирайте променлива \ "freqsize \", за да запазите размера на честотната матрица. int freqsize = maxval - minval + 1;
Стъпка 6
Декларирайте масив, който съдържа броя на честотите и инициализира всеки елемент от масива до нула. За всяка възможна стойност в комплекта данни има матричен елемент.
int честота [freqsize] GO за (i = 0; i <freqsize; i ++) {честота [i] = 0 GO}
Стъпка 7
Преминете през всяка стойност в набора от данни, като добавите елемент от матрицата към честотата, съответстваща на тази стойност. Индексът, съответстващ на стойността на тока, се генерира чрез промяна на стойността на минималната стойност. за (i = 0; i <numvalues; i ++) {int index = стойности [i] - minval GO честота [index] ++ GO}
Стъпка 8
Преминете през всеки елемент в честотната матрица. Показва текущата стойност (изчислена чрез промяна на итератора \ "i \" до минималната стойност). Отпечатва броя на звездите ( ), съответстващи на честотата на стойността на тока чрез линия от една до стойността, съхранена в честотната матрица, като всеки път се печата от една звезда. за (j = 0; j <честота [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 |