diff --git a/main.cpp b/main.cpp index 4cf9e6c..09e6406 100644 --- a/main.cpp +++ b/main.cpp @@ -41,20 +41,52 @@ int main() bins[bin_count-1]++; } } - for (size_t i = 0; i < number_count; i++) + size_t Maxbins = 0; + for (size_t i = 0; i < bin_count; i++) { - for (size_t j = 0; j < bin_count; j++) + if (bins[i] > Maxbins) { - if (bins[j]> i) + Maxbins = bins[i]; + } + } + const size_t MAX_HEIGHT = 76; + if (Maxbins <= MAX_HEIGHT) + { + for (size_t i = 0; i < bin_count; i++) + { + if (bins[i] < 10) + { + cout << " "; + } + cout << " " << bins[i]<< "|"; + for (size_t j = 0; j < bins[i]; j++) { cout << "*"; } - else + cout << endl; + } + } + else + { + for (size_t i = 0; i < bin_count; i++) + { + size_t height = static_cast(MAX_HEIGHT * (static_cast(bins[i]) / Maxbins)); + + if (bins[i] < 100) + { + cout << " "; + } + if (bins[i] < 10) { cout << " "; } + cout << bins[i] << "|"; + for (size_t j = 0; j < height; j++) + { + cout << "*"; + } + cout << endl; } - cout << endl; } return 0; }