diff --git a/main.cpp b/main.cpp index 9bc057a..fac04ab 100644 --- a/main.cpp +++ b/main.cpp @@ -26,6 +26,17 @@ Input input_data() { return in; } +void find_minmax(const vector& numbers, double& minimum, double& maximum) { + minimum = numbers[0]; + for (int i : numbers) { + if (i < minimum) minimum = i; + } + maximum = numbers[0]; + for (int i : numbers) { + if (i > maximum) maximum = i; + } +} + int main () { vector numbers; vector baskets; @@ -34,39 +45,42 @@ int main () { size_t baskets_max_count; const size_t screen_width = 80; const size_t max_asterisk = screen_width - 3 - 1; - float basket_max; - float basket_min; - float basket_size; + double basket_max; + double basket_min; + double basket_size; cout.precision(4); - cerr << "Введите кол-во чисел в строке: "; - cin >> numbers_count; - numbers.resize(numbers_count); + Input in = input_data(); - cerr << "Введите строку чисел: "; - for (float& i : numbers) { - cin >> i; - } +// cerr << "Введите кол-во чисел в строке: "; +// cin >> numbers_count; +// numbers.resize(numbers_count); +// +// cerr << "Введите строку чисел: "; +// for (float& i : numbers) { +// cin >> i; +// } +// +// cerr << "Введите кол-во корзин: "; +// cin >> baskets_count; +// + //baskets.resize(baskets_count); - cerr << "Введите кол-во корзин: "; - cin >> baskets_count; - - baskets.resize(baskets_count); - - basket_max = numbers[0]; - for (int i : numbers) { - if (i > basket_max) basket_max = i; - } - basket_min = numbers[0]; - for (int i : numbers) { - if (i < basket_min) basket_min = i; - } +// basket_max = numbers[0]; +// for (int i : numbers) { +// if (i > basket_max) basket_max = i; +// } +// basket_min = numbers[0]; +// for (int i : numbers) { +// if (i < basket_min) basket_min = i; +// } + find_minmax(in.numbers, basket_min, basket_max); - basket_size = (basket_max - basket_min) / baskets_count; + basket_size = (basket_max - basket_min) / in.bin_count; - for (int i = 0; i < baskets_count; i++) { + for (int i = 0; i < in.bin_count; i++) { for (int j = 0; j < numbers_count; j++) { - if ((numbers[j] >= (basket_min + i * basket_size) and numbers[j] < (basket_min + (i + 1) * basket_size)) or (i == baskets_count - 1 and numbers[j] == basket_max)) { + if ((numbers[j] >= (basket_min + i * basket_size) and numbers[j] < (basket_min + (i + 1) * basket_size)) or (i == in.bin_count - 1 and numbers[j] == basket_max)) { baskets[i]++; } }