Blame


1 5dc21454 2023-07-14 jrmu /* Write a program to print a histogram of the frequencies of
2 5dc21454 2023-07-14 jrmu * different characters in its input. */
3 5dc21454 2023-07-14 jrmu
4 5dc21454 2023-07-14 jrmu #include <stdio.h>
5 5dc21454 2023-07-14 jrmu #define CHARSIZE 256
6 5dc21454 2023-07-14 jrmu
7 5dc21454 2023-07-14 jrmu main()
8 5dc21454 2023-07-14 jrmu {
9 5dc21454 2023-07-14 jrmu int histogram[CHARSIZE], c, maxfreq;
10 5dc21454 2023-07-14 jrmu
11 5dc21454 2023-07-14 jrmu for (int i = 0; i < CHARSIZE; ++i)
12 5dc21454 2023-07-14 jrmu histogram[i] = 0;
13 5dc21454 2023-07-14 jrmu
14 5dc21454 2023-07-14 jrmu maxfreq = 0;
15 5dc21454 2023-07-14 jrmu
16 5dc21454 2023-07-14 jrmu while ((c = getchar()) != EOF) {
17 5dc21454 2023-07-14 jrmu ++histogram[c];
18 5dc21454 2023-07-14 jrmu }
19 5dc21454 2023-07-14 jrmu for (int i = '0'; i <= '9'; ++i) {
20 5dc21454 2023-07-14 jrmu printf("%c: %6d\n", i, histogram[i]);
21 5dc21454 2023-07-14 jrmu }
22 5dc21454 2023-07-14 jrmu for (int i = 'A'; i <= 'Z'; ++i) {
23 5dc21454 2023-07-14 jrmu printf("%c: %6d\n", i, histogram[i]);
24 5dc21454 2023-07-14 jrmu }
25 5dc21454 2023-07-14 jrmu for (int i = 'a'; i <= 'z'; ++i) {
26 5dc21454 2023-07-14 jrmu printf("%c: %6d\n", i, histogram[i]);
27 5dc21454 2023-07-14 jrmu }
28 5dc21454 2023-07-14 jrmu /*
29 5dc21454 2023-07-14 jrmu ++histogram[letters];
30 5dc21454 2023-07-14 jrmu
31 5dc21454 2023-07-14 jrmu for (int i = 1; i <= MAXLENGTH; ++i) {
32 5dc21454 2023-07-14 jrmu printf("%2d: %5d", i, histogram[i]);
33 5dc21454 2023-07-14 jrmu for (int j = 0; j < histogram[i]; ++j) {
34 5dc21454 2023-07-14 jrmu printf("=");
35 5dc21454 2023-07-14 jrmu }
36 5dc21454 2023-07-14 jrmu printf("\n");
37 5dc21454 2023-07-14 jrmu
38 5dc21454 2023-07-14 jrmu maxfreq = (histogram[i] > maxfreq ? histogram[i] : maxfreq);
39 5dc21454 2023-07-14 jrmu }
40 5dc21454 2023-07-14 jrmu printf("\n\n");
41 5dc21454 2023-07-14 jrmu for (int h = maxfreq; h > 0; --h) {
42 5dc21454 2023-07-14 jrmu for (int i = 1; i <= MAXLENGTH; ++i) {
43 5dc21454 2023-07-14 jrmu if (histogram[i] >= h) {
44 5dc21454 2023-07-14 jrmu printf(" | ");
45 5dc21454 2023-07-14 jrmu } else {
46 5dc21454 2023-07-14 jrmu printf(" ");
47 5dc21454 2023-07-14 jrmu }
48 5dc21454 2023-07-14 jrmu }
49 5dc21454 2023-07-14 jrmu printf("\n");
50 5dc21454 2023-07-14 jrmu }
51 5dc21454 2023-07-14 jrmu for (int i = 1; i <= MAXLENGTH; ++i) {
52 5dc21454 2023-07-14 jrmu printf("===");
53 5dc21454 2023-07-14 jrmu }
54 5dc21454 2023-07-14 jrmu printf("\n");
55 5dc21454 2023-07-14 jrmu for (int i = 1; i <= MAXLENGTH; ++i) {
56 5dc21454 2023-07-14 jrmu printf("%2d ",i);
57 5dc21454 2023-07-14 jrmu }
58 5dc21454 2023-07-14 jrmu printf("\n");
59 5dc21454 2023-07-14 jrmu */
60 5dc21454 2023-07-14 jrmu }