CodeSky 代码之空

随手记录自己的学习过程

C 打印输入中各个字符出现的频度的直方图

2014-02-21 20:54分类: C评论: 0

题目如标题。

目前还不是很懂,所以打上存疑标签待定。

输入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)