C-Print a histogram of the frequencies of different characters in its input

蔚落 2023-01-03 14:16 251阅读 0赞

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net

  1. /*
  2. * Write a program to print a histogram of the frequencies of different characters
  3. * in its input.
  4. *
  5. * Histogram_CharFreq.c - by FreeMan
  6. */
  7. #include <stdio.h>
  8. int main()
  9. {
  10. int freqs[94];
  11. int height = 0;
  12. int c, i, k;
  13. for (i = 0; i <= 93; ++i)
  14. {
  15. freqs[i] = 0;
  16. }
  17. while ((c = getchar()) != EOF)
  18. {
  19. if (33 <= c && c <= 126)
  20. {
  21. ++freqs[c - 33];
  22. if (freqs[c - 33] >= height)
  23. {
  24. height = freqs[c - 33];
  25. }
  26. }
  27. }
  28. for (i = height; i > 0; --i)
  29. {
  30. printf("%4d|", i);
  31. for (k = 0; k <= 93; ++k)
  32. {
  33. if (freqs[k] >= i)
  34. {
  35. putchar('*');
  36. }
  37. else
  38. {
  39. putchar(' ');
  40. }
  41. }
  42. putchar('\n');
  43. }
  44. printf(" +");
  45. for (i = 0; i <= 93; ++i)
  46. {
  47. putchar('-');
  48. }
  49. printf("\n ");
  50. for (i = 0; i <= 93; ++i)
  51. {
  52. printf("%c", i + 33);
  53. }
  54. putchar('\n');
  55. return 0;
  56. }
  57. // Here's the output of the program when given its own source as input:
  58. /*
  59. 45| *
  60. 44| *
  61. 43| *
  62. 42| *
  63. 41| *
  64. 40| *
  65. 39| *
  66. 38| *
  67. 37| *
  68. 36| * *
  69. 35| * *
  70. 34| * *
  71. 33| * *
  72. 32| * *
  73. 31| * *
  74. 30| * * *
  75. 29| * * *
  76. 28| * * *
  77. 27| * * * *
  78. 26| * * * * *
  79. 25| * * * * *
  80. 24| * * * * *
  81. 23| * ** * * *
  82. 22| * ** * * *
  83. 21| ** * ** * * *
  84. 20| ** * ** ** * * *
  85. 19| ** * * ** ** * * *
  86. 18| ** * * * ** ** * * *
  87. 17| ** * * * ** ** * * *
  88. 16| ** * * * * ** ** * * *
  89. 15| ** * * * * ** ** * * *
  90. 14| ** * * * * * ** ** * * *
  91. 13| ** * * * * * ** ** * ***
  92. 12| ** * * * * * * ** ** *** ***
  93. 11| ** * * * * * * ** ** *** *** * *
  94. 10| *** * * * * * * ** ** *** *** * *
  95. 9| *** * * * * * * ** ** *** **** * *
  96. 8| * *** * * * * * * * ***** ******** * *
  97. 7| * *** * * * * *** * * ***** ******** * *
  98. 6| * ***** * * * *** * * * * ***** ******** * *
  99. 5| * ***** * * * * *** * * * * ***** * ******** * *
  100. 4| * ******* * * * **** * * * ******* * ********* * *
  101. 3| * ******** * * * **** * *** * ******* *********** * *
  102. 2| * ************ ** * **** * *** * ******* *********** * *
  103. 1|*** **************** * * **** * ** * * * * *** * ********* *********** * * ***
  104. +----------------------------------------------------------------------------------------------
  105. !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
  106. */

发表评论

表情:
评论列表 (有 0 条评论,251人围观)

还没有评论,来说两句吧...

相关阅读