6 int c
, i
, j
, nwhite
, nother
, maxnum
;
7 int ndigit
[CHAR_MAX
] = {0};
12 for(i
= 0; i
< 10; i
++)
15 while ((c
= getchar()) != EOF
)
16 if(c
> CHAR_MAX
) { /* chars outside CHAR_MAX skipped */ } else { ++ndigit
[c
]; }
18 /* print out histogram */
19 for(i
= 0; i
<= CHAR_MAX
; ++i
) // find maximim count to determine graph height
20 if(ndigit
[i
] > maxnum
) { maxnum
= ndigit
[i
]; }
22 for(i
= 0; i
< maxnum
; ++i
) // one row for each instance of number
25 printf("%d\t|", maxnum
-i
); // print sidebar
26 for(j
= 0; j
<= CHAR_MAX
; ++j
) // one column for each number
28 if(ndigit
[j
] > 0) // skip chars not represented in file
29 if(ndigit
[j
] >= maxnum
-i
) { putchar('*'); } else { putchar(' '); }
33 /* print vertically ascii value of char printed */
35 for (i
= 0; i
<= CHAR_MAX
; ++i
) { if(ndigit
[i
] > 0) { printf("%d", i
/100); } }
37 for (i
= 0; i
<= CHAR_MAX
; ++i
) { if(ndigit
[i
] > 0) { printf("%d", (i
-(100*(i
/100)))/10); } }
39 for (i
= 0; i
<= CHAR_MAX
; ++i
) { if(ndigit
[i
] > 0) { printf("%d", i
-(10*(i
/10))); } }