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

原创 2016年05月30日 21:15:38
#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');
    }

}

相关文章推荐

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

C语言程序设计(第二版) 练习1-14 个人设计编写一个程序,打印输入中各个字符出现频度的直方图(水平)代码块#include main() { int c, nletter, nwhit...

打印字符频度直方图--C语言实现

前言 该题摘自Kernighan的《C程序设计语言》第17页练习1-14。 编写一个程序,打印输入中各个字符出现频度的直方图。 对应的参考书中提供了一种解法,但是没有想象之中的美妙。于是乎,自己动手写...
  • milkcu
  • milkcu
  • 2013年04月28日 22:50
  • 1160

练习1-13 编写一个程序,打印输入中单词长度的直方图(水平)(方法2)

C语言程序设计(第二版) 练习1-13 个人设计练习1-13 编写一个程序,打印输入中单词长度的直方图(水平)(方法2)代码块#include main() { int nc, ns, nw,...

练习1-13 编写一个程序,打印输入中单词长度的直方图(水平)

C语言程序设计(第二版) 练习1-13 个人设计编写一个程序,打印输入中单词长度的直方图(水平)。代码块#include main() { int c, nc, fnl, i; ...

练习1-13 编写一个程序,打印输入中单词长度的直方图(垂直)

C语言程序设计(第二版) 练习1-13 个人设计练习1-13 编写一个程序,打印输入中单词长度的直方图(垂直)代码块#include main() { int nc, ns, nw, i, m...

编写一个程序,打印输入中单词长度的直方图

#include #define MAXHIST 15 #define MAXWORD 11 #define IN 1 #define OUT 0int main() { int c, i,...

打印输入的单词长度和各个字符出现频数的直方图(水平方向和垂直方向)

这事实上是K&R导言中练习1-13和1-14的问题,因为两个问题都涉及直方图,有些相似,所以都放在一起。相对来说自由发挥的余地比较大,不同的码者会写出不同形式的代码,下面只是我的解决方案。 #incl...

打印输入中单词长度的直方图,垂直方向的。折磨使我强大的一个程序!

#include #include#define MAXWORDLEN 10 //宏定义最长数组元素个数int main(void) { int c; int inspace = ...

练习1-19 编写函数 reverse(s),将字符串s 中的字符顺序颠倒过来。使用该函数编写一个程序,每次颠倒一个输入行中的字符顺序。

练习1-19 编写函数 reverse(s),将字符串s 中的字符顺序颠倒过来。使用该函数编写一个程序,每次颠倒一个输入行中的字符顺序。自己的:思路最开始的思路是在函数里新建一个字符数组,将输入...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:练习1-14 编写一个程序,打印输入中各个字符出现频度的直方图
举报原因:
原因补充:

(最多只允许输入30个字)