练习 1-14 编写一个程序,打印输入中各个字符出现频度的直方图。

 

 1 #include <stdio.h>
 2 
 3 /* count digits, white space, others */
 4 
 5 int main(int argc, char const *argv[])
 6 {
 7     int c, i, j, nwhite, nother;
 8     int ndigit[10];
 9 
10     nwhite = nother = 0;
11     for (i = 0; i < 10; ++i) {
12         ndigit[i] = 0;
13     }
14 
15     while ((c = getchar()) != EOF) {
16         if (c >= '0' && c <= '9') {
17             ++ndigit[c-'0'];
18         } else if (c == ' ' || c == 'n' || c == 't') {
19             ++nwhite;
20         } else {
21             ++nother;
22         }
23     }
24 
25     for (i = 0; i < 10; ++i) {
26         printf("%d:", i);
27         for (j = 0; j < ndigit[i]; ++j) {
28             printf("*");
29         }
30         printf("n");
31     }
32     printf("w:");
33     for (i = 0; i < nwhite; ++i) {
34         printf("*");
35     }
36     printf("no:");
37     for (i = 0; i < nother; ++i) {
38         printf("*");
39     }
40     printf("n");
41 
42     return 0;
43 }

 

内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!

相关课程

3954 0元 50元 限免