diff --git a/main.cpp b/main.cpp index ae1c1d1..2b29275 100644 --- a/main.cpp +++ b/main.cpp @@ -24,13 +24,11 @@ input_data(){ cin >> in.bin_count; return in; } - -int -main() { - Input in = input_data(); - auto min = in.numbers[0]; - auto max = in.numbers[0]; - for (auto x : in.numbers) { +static void +find_minmax(const std::vector<double>& numbers, double& min, double& max){ + min = numbers[0]; + max = numbers[0]; + for (auto x : numbers) { if (x < min) { min = x; } @@ -38,12 +36,19 @@ main() { max = x; } } +} +int +main() { + size_t i, j; + double min, max; + Input in = input_data(); + find_minmax (in.numbers, min, max); double bin_size = (max - min) / in.bin_count; vector<size_t> bins(in.bin_count); - for (auto i = 0; i < in.number_count; i++) { + for (auto x : in.numbers) { bool found = false; - for (auto j = 0; (j < in.bin_count - 1) && !found ; j++) { - if ((min + j * bin_size <= in.numbers[i]) && (in.numbers[i] < min + (j + 1) * bin_size)) { + for (j = 0; (j < (in.bin_count - 1) && !found); j++) { + if (min + j * bin_size <= x && (x < min + (j + 1) * bin_size)) { bins[j] += 1; found = true; }