#include <iostream> #include <vector> using namespace std; int main() { size_t number_count;//êîëè÷åñòâî ÷èñåë cerr<<"vvod chisel"; cin>>number_count; vector <double> numbers(number_count);//âåêòîð ñ êîëè÷ñåòâîì ýëåìåíòîâ number_count cout<<endl;//çàïîëíåíèå âåêòîðà for(size_t i=0; i<number_count; i++) { cin>>numbers[i]; } size_t bin_count;//êîëè÷åñòâî êîðçèí cin>>bin_count; vector<size_t> bins(bin_count); double min = numbers[0];//ïîèñê ìèí double max = numbers[0];//ïîèñê ìàêñ for (double x : numbers)//öèêë äíÿ âñåõ åëåìåíòîâ numbers { if (x < min) { min = x; } else if (x > max) { max = x; } } 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++) { auto lo = min + j * bin_size; auto hi = min + (j + 1) * bin_size; if ((lo <= numbers[i]) && (numbers[i] < hi)) { bins[j]++; found = true; } } if (!found) { bins[bin_count - 1]++; } } size_t max_count=0;//ìàêñèìóì ýëåìåíòîâ â êîðçèíå for (size_t i =0; i<bin_count; i++) { if (max_count <bins[i]) { max_count=bins[i]; } } int proc; int sum =0; for(size_t i=0; i<bin_count; i++)//âûâîä ñ ïðîöåíòàìè { if (i==bin_count-1) { proc=100-sum; } else { proc =((float)bins[i] / number_count)*100; } sum+=proc; if (proc<10)//âûðàâíèâàíèå ñ % { cout<<" "<<proc<<"% | "; } if ((proc<100)&&(proc>=10)) { cout<<" "<<proc<<"% | "; } size_t height = 0; if (max_count>75)//ìàøòàáèðîâàíèå { size_t height = 75 * (static_cast<double>(bins[i]) / max_count); for(size_t j=0; j<=height; j++) { cout<<"*"; } } else { for(size_t j=0; j<=bins[i]-1; j++) { cout<<"*"; } } cout<<endl; } }