#include #include using namespace std; int main() { size_t numbers, columns, count; float minn, maxx, diff, lo, hi; cerr << "Quantity of numbers = "; cin >> numbers; vector xs(numbers); cerr << "Enter your numbers: "; for (int i = 0; i < numbers; ++i) { cin >> xs[i]; } cerr << "Columns = "; cin >> columns; vector a(columns); maxx = xs[0]; minn = xs[0]; for (int i = 0; i < numbers; i++) { if (xs[i] > maxx) maxx = xs[i]; else { if (xs[i] < minn) minn = xs[i]; } } diff = (maxx - minn) / columns; lo = minn; size_t max_count = 0; for (int i = 0; i < columns; ++i) { count = 0; if (i != columns - 1) { hi = lo + diff; } else { hi = maxx; } for (int j = 0; j < numbers; j++) { if (i == 0) { if ((xs[j] >= lo) && (xs[j] <= hi)) count++; } else { if ((xs[j] > lo) && (xs[j] <= hi)) count++; } } a[i] = count; lo = hi; if (max_count < a[i]) max_count = a[i]; } const size_t SCREEN_WIDTH = 80; const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1; size_t height; for (int i = 0; i < columns; i++) { if (a[i] == 0) continue; if (a[i] < 10) cout << " "; else if (a[i] < 100) cout << " "; cout << a[i] << "|"; if (max_count > MAX_ASTERISK) height = MAX_ASTERISK * (static_cast(a[i]) / max_count); else height = a[i]; for (int j = 0; j < height; j++) { cout << "*"; } cout << endl; } }