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