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

38 строки
1.1 KiB
C++

#include "text.h"
#include <iostream>
#include <vector>
using std::vector;
const size_t SCREEN_WIDTH = 80;
const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1;
// Âûâîä ãèñòîãðàììû
void show_histogram_text(const std::vector<size_t>& bins) {
size_t max_bin_count = 0;
for (size_t bin : bins) {
if (bin > max_bin_count) {
max_bin_count = bin;
}
}
if (max_bin_count <= MAX_ASTERISK) {
for (size_t bin : bins) {
if (bin < 10) std::cout << " ";
std::cout << " " << bin << "|";
for (size_t j = 0; j < bin; j++) {
std::cout << "*";
}
std::cout << std::endl;
}
} else {
for (size_t bin : bins) {
size_t height = static_cast<size_t>(MAX_ASTERISK * (static_cast<double>(bin) / max_bin_count));
if (bin < 100) std::cout << " ";
if (bin < 10) std::cout << " ";
std::cout << bin << "|";
for (size_t j = 0; j < height; j++) {
std::cout << "*";
}
std::cout << std::endl;
}
}
}