commit 8e0c656efb395eac70eae7a1afb7aca7345945b4 Author: Smirnoff (SmirnovDA) Date: Mon May 5 16:32:33 2025 +0300 С Богом! diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..d811fd6 --- /dev/null +++ b/main.cpp @@ -0,0 +1,82 @@ +#include +#include + +using namespace std; + +int main() +{ +double min,max,lo,hi; +size_t number_count,bin_count,i,j,s=0; +const size_t SCREEN_WIDTH = 80; +const size_t MAX_ASTERISK = SCREEN_WIDTH - 4; + +cout << "Enter number_count: "; +cin >> number_count; +cout << "Enter numbers: "; +vector numbers; +for(size_t i =0 ; i < number_count; ++i){ + double num; + cin >> num; + numbers.push_back(num); +} + +cout << "Enter bin_count: "; +cin >> bin_count; +min = numbers[0]; +max = numbers[0]; +for (i = 0; i < number_count; i++){ + if (numbers[i] < min){ + min = numbers[i]; + } + else if (numbers[i] > max){ + max = numbers[i]; + } +} + +vector bins(bin_count); +double bin_size = (max-min)/bin_count; + +for (size_t i = 0; i < number_count; i++){ + bool found = false; + for (size_t j = 0;(j < bin_count - 1) && !found; j++){ + lo = min + j * bin_size; + hi = min + (j + 1) * bin_size; + if ((lo <= numbers[i]) && (numbers[i] MAX_ASTERISK){ + max_count = bins[i]; + } +} + +for (i = 0;i < bin_count; i++){ + s += bins[i]; + if (bins[i] < 100){ + cout << " "; + } + if (bins[i]<10){ + cout <<" "; + } + cout << s << "|"; + if (max_count == 0){ + for(j = 0;j < s; j++){ + cout <<"*"; + }} + else { + size_t height = MAX_ASTERISK*(static_cast(s) / max_count); + for( j = 0; j < height; j++){ + cout <<"*"; + } + } + cout << endl; +}}