From d387fc82a999f2f1cd841be6a73aea3648a58d3a Mon Sep 17 00:00:00 2001 From: VinogradovMA Date: Sun, 27 Apr 2025 19:37:01 +0300 Subject: [PATCH] code:show_histogram_text_fixed[2] --- main.cpp | 75 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 37 insertions(+), 38 deletions(-) diff --git a/main.cpp b/main.cpp index f161230..058d081 100644 --- a/main.cpp +++ b/main.cpp @@ -10,52 +10,23 @@ struct Input { }; void find_minmax(vector numbers, double& min, double& max); -//size_t maxBin(vector bins); +size_t maxBin(vector bins); vector make_histogram(vector numbers, size_t bin_count); Input input_data(); - +void show_histogram_text(vector bins , size_t bin_count); const size_t SCREEN_WIDTH = 80; const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1; int main() { - size_t maxCount; - Input in = input_data(); - vector bins = make_histogram(in.numbers,in.bin_count); - - /* - maxCount = maxBin(bins); - size_t count_stars; - for (int i = 0; i < in.bin_count; i++) { - - if (bins[i] < 100) { - cout << " "; - } - if (bins[i] < 10) { - cout << " "; - } - - cout << bins[i]; - cout << "|"; - if (maxCount > MAX_ASTERISK) { - count_stars = MAX_ASTERISK * (static_cast(bins[i]) / maxCount); - } - else { - count_stars = bins[i]; - } - for (size_t i2 = 0; i2 < count_stars; i2++) { - cout << "*"; - } - cout << endl; - - - } - */ + Input in = input_data(); + vector bins = make_histogram(in.numbers, in.bin_count); + show_histogram_text(bins, in.bin_count); return 0; } -/*size_t maxBin(vector bins) { +size_t maxBin(vector bins) { size_t max = bins[0]; for (int i = 1; i < bins.size(); i++) { if (max < bins[i]) { @@ -63,7 +34,7 @@ int main() } } return max; -}*/ +} void find_minmax(vector numbers, double& min, double& max) { min = numbers[0]; max = numbers[0]; @@ -91,7 +62,7 @@ Input input_data() { cin >> input_struct.bin_count; cerr << "Input numbers:\n"; for (int i = 0; i < countOfNumbers; i++) { - cerr << i << ":"<< endl; + cerr << i << ":" << endl; cin >> input_struct.numbers[i]; } cerr << endl; @@ -122,7 +93,35 @@ vector make_histogram(vector numbers, size_t bin_count) } return bins; } -void show_histogram_text(){} +void show_histogram_text(vector bins , size_t bin_count) { + size_t maxCount = maxBin(bins); + size_t count_stars; + for (size_t i = 0; i < bin_count; i++) { + + if (bins[i] < 100) { + cout << " "; + } + if (bins[i] < 10) { + cout << " "; + } + + cout << bins[i]; + cout << "|"; + + if (maxCount > MAX_ASTERISK) { + count_stars = MAX_ASTERISK * (static_cast(bins[i]) / maxCount); + } + else { + count_stars = bins[i]; + } + for (size_t i2 = 0; i2 < count_stars; i2++) { + cout << "*"; + } + cout << endl; + + + } +}