练习 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 }
内容来源于网络如有侵权请私信删除
- 还没有人评论,欢迎说说您的想法!