C 打印输入中各个字符出现的频度的直方图
题目如标题。
目前还不是很懂,所以打上存疑
标签待定。
输入hello
之后效果截图,其实是很长的一串。
#include <stdio.h>
#include <ctype.h>
#define MAXHIST 15
#define MAXCHAR 128
main(void)
{
int c, i;
int len;
int maxvalue;
int cc[MAXCHAR];
for (i = 0; i < MAXCHAR; ++i)
cc[i] = 0;
while ((c = getchar()) != EOF)
if (c < MAXCHAR)
++cc[c];
maxvalue = 0;
for(i = 1; i < MAXCHAR; ++i)
if (cc[i] > maxvalue)
maxvalue = cc[i];
for (i = 1; i < MAXCHAR; ++i) {
if (isprint(i))
printf("%5d - %c - %5d : ", i, i, cc[i]);
else
printf("%5d - - %5d : ",i, cc[i]);
if (cc[i] > 0) {
if ((len = cc[i] * MAXHIST / maxvalue) <= 0)
len = 1;
} else
len = 0;
while (len > 0) {
putchar('*');
--len;
}
putchar('\n');
}
return 0;
}
输出大致是:
1 - - 0 :
2 - - 0 :
3 - - 0 :
4 - - 0 :
5 - - 0 :
6 - - 0 :
7 - - 0 :
8 - - 0 :
9 - - 0 :
10 - - 1 : *******
11 - - 0 :
12 - - 0 :
13 - - 0 :
14 - - 0 :
15 - - 0 :
16 - - 0 :
17 - - 0 :
18 - - 0 :
19 - - 0 :
20 - - 0 :
21 - - 0 :
22 - - 0 :
23 - - 0 :
24 - - 0 :
25 - - 0 :
26 - - 0 :
27 - - 0 :
28 - - 0 :
29 - - 0 :
30 - - 0 :
31 - - 0 :
32 - - 0 :
33 - ! - 0 :
34 - " - 0 :
35 - # - 0 :
36 - $ - 0 :
37 - % - 0 :
38 - & - 0 :
39 - ' - 0 :
40 - ( - 0 :
41 - ) - 0 :
42 - * - 0 :
43 - + - 0 :
44 - , - 0 :
45 - - - 0 :
46 - . - 0 :
47 - / - 0 :
48 - 0 - 0 :
49 - 1 - 0 :
50 - 2 - 0 :
51 - 3 - 0 :
52 - 4 - 0 :
53 - 5 - 0 :
54 - 6 - 0 :
55 - 7 - 0 :
56 - 8 - 0 :
57 - 9 - 0 :
58 - : - 0 :
59 - ; - 0 :
60 - < - 0 :
61 - = - 0 :
62 - > - 0 :
63 - ? - 0 :
64 - @ - 0 :
65 - A - 0 :
66 - B - 0 :
67 - C - 0 :
68 - D - 0 :
69 - E - 0 :
70 - F - 0 :
71 - G - 0 :
72 - H - 0 :
73 - I - 0 :
74 - J - 0 :
75 - K - 0 :
76 - L - 0 :
77 - M - 0 :
78 - N - 0 :
79 - O - 0 :
80 - P - 0 :
81 - Q - 0 :
82 - R - 0 :
83 - S - 0 :
84 - T - 0 :
85 - U - 0 :
86 - V - 0 :
87 - W - 0 :
88 - X - 0 :
89 - Y - 0 :
90 - Z - 0 :
91 - [ - 0 :
92 - \ - 0 :
93 - ] - 0 :
94 - ^ - 0 :
95 - _ - 0 :
96 - ` - 0 :
97 - a - 0 :
98 - b - 0 :
99 - c - 0 :
100 - d - 0 :
101 - e - 1 : *******
102 - f - 0 :
103 - g - 0 :
104 - h - 1 : *******
105 - i - 0 :
106 - j - 0 :
107 - k - 0 :
108 - l - 2 : ***************
109 - m - 0 :
110 - n - 0 :
111 - o - 1 : *******
112 - p - 0 :
113 - q - 0 :
114 - r - 0 :
115 - s - 0 :
116 - t - 0 :
117 - u - 0 :
118 - v - 0 :
119 - w - 0 :
120 - x - 0 :
121 - y - 0 :
122 - z - 0 :
123 - { - 0 :
124 - | - 0 :
125 - } - 0 :
126 - ~ - 0 :
127 - - 0 :
植入部分
如果您觉得文章不错,可以通过赞助支持我。
如果您不希望打赏,也可以通过关闭广告屏蔽插件的形式帮助网站运作。