From 07cf1172cd0245e72f2b6b5ffff7bc7aa42d6806 Mon Sep 17 00:00:00 2001 From: MatusSV Date: Mon, 13 May 2024 07:47:42 +0300 Subject: [PATCH] =?UTF-8?q?code:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D1=81=D1=82=D1=80=D1=83=D0=BA=D1=82=D1=83?= =?UTF-8?q?=D1=80=D0=B0=20=D0=B4=D0=BB=D1=8F=20=D0=B2=D1=85=D0=BE=D0=B4?= =?UTF-8?q?=D0=BD=D1=8B=D1=85=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85,=20?= =?UTF-8?q?=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8=20=D0=B2=D0=B2=D0=BE?= =?UTF-8?q?=D0=B4=D0=B0=20=D0=B8=20=D0=BF=D0=BE=D0=B8=D1=81=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=BC=D0=B8=D0=BD=D0=B8=D0=BC=D1=83=D0=BC=D0=B0/=D0=BC=D0=B0?= =?UTF-8?q?=D0=BA=D1=81=D0=B8=D0=BC=D1=83=D0=BC=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.cpp | 52 ++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 14 deletions(-) diff --git a/main.cpp b/main.cpp index 8059e16..d10853a 100644 --- a/main.cpp +++ b/main.cpp @@ -3,34 +3,58 @@ using namespace std; -int main() -{ - const size_t SCREEN_WIDTH = 80; - const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1; +struct Input { + vector numbers; + size_t bin_count{}; +}; +Input +input_data() { size_t number_count; - size_t bin_count; + Input in; cerr << "Enter number count: "; cin >> number_count; vector numbers(number_count); - for (size_t i = 0; i < number_count; i++) - cin >> numbers[i]; + in.numbers.resize(number_count); - double min = numbers[0]; - double max = numbers[0]; - double max_count = 0; + for (size_t i = 0; i < number_count; i++) { + cin >> in.numbers[i]; + } + cerr << "Enter bins count: "; + cin >> in.bin_count; + return in; +} + +void + find_minmax(const vector& numbers, double& min, double& max) { + min = numbers[0]; + max = numbers[0]; + // (здесь код поиска минимума и максимума) for (double value : numbers) { if (value < min) {min = value;} else if (value > max) {max = value;} } +} - cerr << "Enter bins count: "; - cin >> bin_count; +int main() +{ + const size_t SCREEN_WIDTH = 80; + const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1; + + Input in = input_data(); + + double min, max; + find_minmax(in.numbers, min, max); + + double max_count = 0; + + size_t bin_count=in.bin_count; vector bins(bin_count); + size_t number_count=in.numbers.size(); double bin_size = (max - min) / bin_count; @@ -38,7 +62,7 @@ int main() { for (size_t j = i + 1; j < number_count; j++) { - if (numbers[i] == numbers[j]) + if (in.numbers[i] == in.numbers[j]) { //numbers.erase(numbers.begin() + j); //number_count--; @@ -55,7 +79,7 @@ int main() { auto low_bound = min + j * bin_size; auto high_bound = min + (j + 1) * bin_size; - if ((low_bound <= numbers[i]) && (numbers[i] < high_bound)) + if ((low_bound <= in.numbers[i]) && (in.numbers[i] < high_bound)) { bins[j]++; found = true;