#include #include using namespace std; int main() { // size_t SCREEN_WIDTH; size_t number_count, kol_kor, height; int i, j, srmax, srmin, maxp, minp, max_count = 0, count; bool found; const size_t SCREEN_WIDTH = 80; cerr << "Enter number count:"; cin >> number_count; const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1; /* cerr << "Enter SCREEN_WIDTH:"; cin >> SCREEN_WIDTH; while (SCREEN_WIDTH<7 || SCREEN_WIDTH>80 || SCREEN_WIDTH> SCREEN_WIDTH; } */ vector numbers(number_count); for (i = 0; i < number_count; i++) { cerr << "numbers[" << i << "]"; cin >> numbers[i]; } cerr << "Enter kol_kor:"; cin >> kol_kor; vector chet(kol_kor); srmax = 0; for (i = 0; i < number_count; i++) { if (numbers[i] > srmax) srmax = numbers[i]; } maxp = srmax; srmin = numbers[0]; for (i = 0; i < number_count; i++) { if (numbers[i] < srmin) srmin = numbers[i]; } minp = srmin; double step = (maxp - minp) / (kol_kor*(1.0)); vector B(kol_kor); for (i = 0; i < number_count; i++) { for (j = 0; j < kol_kor; j++) { if ((numbers[i] >= (minp + j * step)) && (numbers[i] < (minp + (j + 1)*step))) { B[j]++; break; } } } for (i = 0; i < number_count; i++) { if (numbers[i] == maxp) { B[kol_kor - 1]++; } } for (i = 0; i < kol_kor; i++) { if (B[i] > max_count) max_count = B[i]; } for (j = 0; j < kol_kor; j++) { cerr << "B[" << j << "]="; cerr << B[j] << endl; } for (i = 0; i < kol_kor; i++) { if (B[i] > 9 && B[i] < 100) { cout << " "; } if (B[i] < 10) { cout << " "; } cout << B[i] << "|"; if (max_count > MAX_ASTERISK) { count = B[i]; height = MAX_ASTERISK * (static_cast(count) / max_count); } else { height = B[i]; } for (j = 0; j < height; j++) { cout << "*"; } cout << endl; } return 0; }