#include #define ASCII_FIRST_PRINTABLE_CODEPOINT 33 #define ASCII_LAST_PRINTABLE_CODEPOINT 126 #define ASCII_SPACE ASCII_LAST_PRINTABLE_CODEPOINT - ASCII_FIRST_PRINTABLE_CODEPOINT + 1 #define BAR '#' /* print a histogram of the frequencies of different characters */ int main() { int c, i, j; int nchar[ASCII_SPACE]; for (i = 0; i < ASCII_SPACE; ++i) nchar[i] = 0; while ((c = getchar()) != EOF) if (c >= ASCII_FIRST_PRINTABLE_CODEPOINT && c <= ASCII_LAST_PRINTABLE_CODEPOINT) ++nchar[c - ASCII_FIRST_PRINTABLE_CODEPOINT]; for (i = 0; i < ASCII_SPACE; ++i) { if (nchar[i] > 0) { printf("%c: ", i + ASCII_FIRST_PRINTABLE_CODEPOINT); for (j = 0; j < nchar[i]; ++j) putchar(BAR); putchar('\n'); } } }