关闭

练习1-14 编写一个程序,打印输入中各个字符出现频度的直方图

697人阅读 评论(2) 收藏 举报
分类:
#include <stdio.h>
#define MAXHIST 15
#define MAXCHAR 128
main()
{
    int c,i;
    int len;
    int maxvalue;
    int cc[MAXCHAR];
    for(i=0;i<MAXCHAR;++i)
        cc[i]=0;
    while((c=getchar())!=EOF){
        if(c<MAXCHAR)
        ++cc[c];
    }

    maxvalue=0;
    for(i=0;i<MAXCHAR;++i){
        if(cc[i]>maxvalue)
            maxvalue=cc[i];
    }

    for(i=1;i<MAXCHAR;++i){
        if(isprint(i))
            printf("%5d - %c -%5d : ",i,i,cc[i]);
        else
            printf("%5d -   -%5d : ",i,cc[i]);
        if(cc[i]>0){
            if((len=cc[i]*MAXHIST/maxvalue)<=0)
                len=1;
        }
        else
            len=0;
        while(len>0){
            putchar('*');
            --len;
        }
        putchar('\n');
    }

}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:34175次
    • 积分:993
    • 等级:
    • 排名:千里之外
    • 原创:68篇
    • 转载:0篇
    • 译文:0篇
    • 评论:11条
    最新评论