Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

57 строки
1.8 KiB
C++

#include <iostream>
#include <vector>
#include <algorithm>
int main() {
// Ввод количества чисел и самих чисел
std::cout << "Введите количество чисел: ";
int n;
std::cin >> n;
std::vector<int> 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<int> histogram(bins, 0);
// Вычисление ширины интервала
double bin_width = static_cast<double>(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;
}