From 863e33dc7e4bfc488a41e171334ab84074324ab3 Mon Sep 17 00:00:00 2001 From: ZhadinAS Date: Sun, 14 Apr 2024 19:19:47 +0000 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=B8?= =?UTF-8?q?=D0=BB(=D0=B0)=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=B2=20''?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- solution.cpp | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 solution.cpp diff --git a/solution.cpp b/solution.cpp new file mode 100644 index 0000000..c980537 --- /dev/null +++ b/solution.cpp @@ -0,0 +1,56 @@ +#include +#include +#include + +int main() { + // Ввод количества чисел и самих чисел + std::cout << "Введите количество чисел: "; + int n; + std::cin >> n; + + std::vector numbers(n); + std::cout << "Введите числа: "; + for(int i = 0; i < n; i++) { + std::cin >> numbers[i]; + } + + // Определение границ диапазона + int min_val = *std::min_element(numbers.begin(), numbers.end()); + int max_val = *std::max_element(numbers.begin(), numbers.end()); + + // Ввод количества интервалов (корзин) + std::cout << "Введите количество корзин: "; + int bins; + std::cin >> bins; + + // Создание массива для хранения количества чисел в каждой корзине + std::vector histogram(bins, 0); + + // Вычисление ширины интервала + double bin_width = static_cast(max_val - min_val) / bins; + + // Заполнение гистограммы + for (int i = 0; i < n; i++) { + int bin_index = (numbers[i] - min_val) / bin_width; + if(bin_index == bins) { + bin_index--; + } + histogram[bin_index]++; + } + + // Преобразование гистограммы в нарастающий итог + for (int i = 1; i < bins; i++) { + histogram[i] += histogram[i-1]; + } + + // Отображение гистограммы + for(int i = 0; i < bins; i++) { + std::cout << histogram[i] << "|"; + for(int j = 0; j < histogram[i]; j++) { + std::cout << "*"; + } + std::cout << std::endl; + } + + return 0; +}