diff --git a/maincpp.cpp b/maincpp.cpp index 5c1117a..a4a2a70 100644 --- a/maincpp.cpp +++ b/maincpp.cpp @@ -1,42 +1,55 @@ #include #include using namespace std; -int main() { - size_t n; - int korz; +struct Input { + vector vec; + size_t korz{}; +}; +Input input_data() +{ + Input in; + size_t n, korz; + cerr << "Number of elem "; cin >> n; - vector vec(n); - for (size_t i = 0; i < vec.size(); i++) { - //cout << i + 1 << "."; - cin >> vec[i]; - } - cerr << "Number of baskets "; - cin >> korz; - vector bins(korz); - double mn = vec[0]; - double mx = vec[0]; + in.vec.resize(n); + for (size_t i = 0; i < n; i++) + cin >> in.vec[i]; + cerr << "Enter bin count: "; + cin >> in.korz; + return in; +} +void find_minmax(vector vec, double& min, double& max) { + min = vec[0]; + max = vec[0]; for (double x : vec) { - if (x < mn) { - mn = x; + if (x < min) { + min = x; } - else if (x > mx) { - mx = x; + else + { + max = x; } } - float bin_size = (mx - mn) / korz; - for (size_t i = 0; i < vec.size(); i++) { +} +int main() { + auto in = input_data(); + vector bins(in.korz); + double mn, mx; + find_minmax(in.vec, mn, mx); + float bin_size = (mx - mn) / in.korz; + for (size_t i = 0; i < in.vec.size(); i++) { bool fl = false; - for (size_t j = 0; (j < korz - 1) && !fl; j++) { + for (size_t j = 0; (j < in.korz - 1) && !fl; j++) { auto lo = mn + j * bin_size; auto hi = mn + (j + 1) * bin_size; - if ((lo <= vec[i]) && (vec[i] < hi)) { + if ((lo <= in.vec[i]) && (in.vec[i] < hi)) { bins[j]++; fl = true; } } if (!fl) { - bins[korz - 1]++; + bins[in.korz - 1]++; } } @@ -119,4 +132,4 @@ int main() { cout << endl; } } -} +} \ No newline at end of file