diff --git a/main.cpp b/main.cpp index 854bb8a..cb6755b 100644 --- a/main.cpp +++ b/main.cpp @@ -1,47 +1,61 @@ #include #include +using namespace std; +struct Input { + vector numbers; + size_t bin_count{}; +}; + +Input +input_data() { + size_t number_count; + cin >> number_count; + Input in; + in.numbers.resize(number_count); + for (size_t i = 0; i < number_count; i++) { + cin >> in.numbers[i]; + } + cin >> in.bin_count; + return in; +} + +void find_minmax(const vector& numbers, double& min, double& max) { + min = numbers[0]; + for (double x : numbers){ + if (x < min){ + min = x; + } + if (x > max){ + max = x; + } + } +} -using namespace std; int main() { - // Ширина экрана для вывода гистограммы - const size_t SCREEN_WIDTH = 80; - // Увеличена ширина для подписей - const size_t MAX_ASTERISK = SCREEN_WIDTH - 10; + Input in = input_data(); + setlocale(LC_ALL, "rus"); size_t number_count; - cerr << "Введите количество значений: "; cin >> number_count; - vector numbers(number_count); - for (int i = 0; i < number_count; i++) - { - cerr << "Введите число под номером " << i+1 << ": "; + vector numbers(number_count); + for (size_t i = 0; i < number_count; i++) { cin >> numbers[i]; } size_t bin_count; - cerr << "Введите количество корзин: "; cin >> bin_count; vector bins(bin_count); double min = numbers[0]; double max = numbers[0]; - for (double x : numbers) - { - if (x < min) - { - min = x; - } - if (x > max) - { - max = x; - } - } - + find_minmax(in.numbers, min, max); + cerr<