#include #include #include "histogram.h" using namespace std; struct Input { vector marks; int NCharts = 0; }; Input input_data() { Input in; int VecSize = 0; cin >> VecSize; in.marks.resize(VecSize); for (int i = 0; i < VecSize; i++) { cin >> in.marks[i]; } cin >> in.NCharts; return in; }; void show_histogram_text(const vector& marks, const vector& chart) { int VecSize = size(marks); const int shift = 4, maxlen = 80; double interval = 0, inp = 0, i = 0, min = 0, max = 0, scale = 1; FindMinMax(chart, min, max); if ((max + shift) > maxlen) { scale = (max + shift) / maxlen; } for (i = 0; i < size(chart); i++) { if (chart[i] < 10) { cout << " "; } else if (9 < chart[i] && chart[i] < 100) { cout << " "; } cout << chart[i] << "|"; max = (chart[i] / scale); if (scale != 1) { max -= 1; } for (int j = 0; j < max; j++) { cout << "*"; } cout << "\n"; } }; int main() { Input in = input_data(); vector chart = MakeHistogram(in.marks, in.NCharts); show_histogram_text(in.marks, chart); }