Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

40 строки
903 B
C++

#include "text.h"
#include <iostream>
#include <vector>
void show_histogram_text(std::vector<size_t> bins, size_t bin_count)
{
const size_t SCREEN_WIDTH = 80;
const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1;
double max_count = bins[0];
for (double x : bins) {
if (x > max_count) {
max_count = x;
}
}
size_t height;
bool flag = true;
for (size_t j = 0; j < bin_count; j++) {
if (bins[j] < 100) {
std::cout << " ";
}
if (bins[j] < 10) {
std::cout << " ";
}
std::cout << bins[j] << "|";
if (max_count > MAX_ASTERISK) {
for (size_t i = 0; i < bins[j]; i++) {
if (bins[j] != MAX_ASTERISK && flag) {
double count = bins[j];
height = MAX_ASTERISK * (static_cast<double>(count) / max_count);
bins[j] = height;
flag = false;
}
}
}
for (size_t i = 0; i < bins[j]; i++) {
std::cout << "*";
}
std::cout << std::endl;
flag = true;
}
}