diff --git a/LABA1.cpp b/LABA1.cpp index 6e48f9b..76ca3fb 100644 --- a/LABA1.cpp +++ b/LABA1.cpp @@ -2,23 +2,34 @@ #include using namespace std; +struct Input { + vector marks; + int NCharts = 0; +}; + +Input +input_data() { + Input in; + int VecSize = 0; + cin >> VecSize; + in.marks.resize(VecSize); + for (int i = 0; i < VecSize; i++) { + cin >> in.marks[i]; + } + cin >> in.NCharts; + return in; +}; + int main() { - int VecSize = 0, NCharts = 0, Average = 0; + Input in = input_data(); + int VecSize = size(in.marks); double interval = 0, inp = 0, i = 0, min = 0, max = 0, scale = 1; - cin >> VecSize; - vector marks; - for (int j = 0; j < VecSize; j++) { - cin >> inp; - marks.push_back(inp); - Average ++; - } - cin >> NCharts; - vector chart(NCharts); - min = *min_element(begin(marks), end(marks)); - max = *max_element(begin(marks), end(marks)); - interval = (max - min) / NCharts; - for (int x : marks) { + vector chart(in.NCharts); + min = *min_element(begin(in.marks), end(in.marks)); + max = *max_element(begin(in.marks), end(in.marks)); + interval = (max - min) / in.NCharts; + for (int x : in.marks) { i = 0; while ((x > min + interval * (i + 1))) { i += 1; @@ -29,7 +40,7 @@ int main() if ((max+4) > 80) { scale = (max+4) / 80; } - for (i = 0; i < NCharts; i++) { + for (i = 0; i < in.NCharts; i++) { if (chart[i] < 10) { cout << " "; }