欢迎访问我的新博客:http://www.milkcu.com/blog/
原文地址:http://www.milkcu.com/blog/archives/1367131800.html
前言
该题摘自Kernighan的《C程序设计语言》第17页练习1-14。
编写一个程序,打印输入中各个字符出现频度的直方图。
对应的参考书中提供了一种解法,但是没有想象之中的美妙。于是乎,自己动手写代码。
源代码
我的代码,自我感觉良好。
# include <stdio.h> int main(void){ int a[26]; int c; int i; int j; for(i = 0; i <26; i++){ a[i] = 0; } while((c =getchar()) != EOF){ for(i = 'a'; i <= 'z'; i++){ if(c == i){ a[i - 97]++; } } } for(i = 0; i < 26; i++){ if(a[i] != 0){ printf("%c ", i + 97); for(j = 0; j < a[i]; j++){ putchar('*'); } putchar('\n'); } } return 0; }
后记
五一“长”假马上正式开始了,大家节日快乐。博客总该要写点什么吧,就搬出这个小程序来了。