diff --git a/main.cpp b/main.cpp index 9b9d1bc..668bd58 100644 --- a/main.cpp +++ b/main.cpp @@ -1,48 +1,57 @@ #include #include -#include + using namespace std; -const size_t SCREEN_WIDTH = 80; -const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1; -int main() -{ +struct Input { + vector numbers; + size_t bin_count{}; +}; +Input +input_data() { size_t number_count; - - cout << "Enter number count: "; cin >> number_count; - - vector numbers(number_count); - numbers.resize(number_count); - for(size_t i=0;i>numbers[i]; + Input in; + in.numbers.resize(number_count); + for (size_t i = 0; i < number_count; i++) { + cin >> in.numbers[i]; } size_t bin_count; - cin>>bin_count; - vector bins(bin_count); - double Max = numbers[0], Min = numbers[0]; - for (double x : numbers) + cin >> in.bin_count; + return in; +} +void +find_minmax(const vector& numbers, double& Min, double& Max) { + Min = numbers[0]; + Max = numbers[0]; + for(size_t x : numbers) { - if (x < Min) + if(x < Min) { Min = x; - } - else if (x > Max) + }else { - Max = x; + if(x > Max) + { + Max = x; + } } } +} +vector +make_histogram(vector numbers, size_t bin_count) +{ + std::vector bins(bin_count); + double Min, Max; + find_minmax(numbers, Min, Max); double bin_size = (Max - Min) / bin_count; - //cout<<" "< Max_count) - { - Max_count = x; - } - } - for(size_t i =0;i< bin_count;i++) - { - size_t height = bins[i]; - printf("%3d:",bins[i]); - if(Max_count>(MAX_ASTERISK)) - { - height = (MAX_ASTERISK) * (static_cast(bins[i]) / Max_count); - } - for(size_t j=0;j