diff --git a/histogram.cpp b/histogram.cpp index 0357ff4..b55f283 100644 --- a/histogram.cpp +++ b/histogram.cpp @@ -3,6 +3,12 @@ #include "histogram.h" void find_minmax(const std::vector& numbers, double& min, double& max) { // Поиск максимума и минимума среди оценок. + + if (numbers.empty()) { + min=max=0; + return; + } + min=numbers[0]; max=numbers[0]; for (double x : numbers) { @@ -19,13 +25,18 @@ void find_minmax(const std::vector& numbers, double& min, double& max) { } std::vector make_histogram(const std::vector& numbers, size_t bin_count) { + std::vector bins(bin_count); + if (numbers.empty() || bin_count == 0) { + return bins; + } + double min, max; find_minmax(numbers, min, max); // Создание корзин для дальнейшей сортировки оценок по ним. double bin_size = (max - min) / bin_count; - std::vector bins(bin_count); + for (size_t i = 0; i < bin_count; i++) { bins[i] = 0; }