Родитель
35d436acdc
Сommit
863e33dc7e
@ -0,0 +1,56 @@
|
|||||||
|
#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;
|
||||||
|
}
|
Загрузка…
Ссылка в новой задаче