【C Programming】单词直方图
来源:互联网 发布:网络澳门赌博 编辑:程序博客网 时间:2024/06/08 06:07
C programming一栏用于记录《The C Programming Learning》中的学习历程,代码均来源于其对应习题解答。
习题1-13 打印输入中单词长度的直方图。
//单词水平长度直方图#include<stdio.h>#define MAXWORD 11 //单词最长的长度#define MAXHIST 15 //直方图最长的长度#define OUT 0#define IN 1int main(){int c,i,j,state;int wl[MAXWORD];//各长度的次数int nc; //一个单词的长度int len;//输出*的长度int maxvalue;//单词长度的最大值int overflow;state=OUT;overflow=0;nc=0;for(i=0;i<MAXWORD;i++)wl[i]=0;while((c=getchar())!=EOF){if(c==' '|| c=='\t' || c=='\n'){if(nc>0){ if(nc<MAXWORD)wl[nc]++; elseoverflow++; } nc=0; state=OUT;}else if(state==OUT){ //一个单词开头nc=1; state=IN;}else //一个单词内部nc++;}//给maxvalue赋值maxvalue=0;for(i=1;i<MAXWORD;i++){ if(wl[i]>maxvalue) maxvalue=wl[i];}for(i=1;i<MAXWORD;i++){printf("%5d --%5d : ",i,wl[i]); if(wl[i]>0){ if((len=wl[i]*MAXHIST/maxvalue)<=0) //len=wl[i]*MAXHIST/maxvalue归一化len=1;}elselen=0;for(j=len;j>0;j--)printf(" * "); printf("\n");}if(overflow>0)printf("有 %d 个单词长度超过了 %d ",overflow,MAXWORD);}
以下为打印垂直直方图代码段,从两个for语句开始,前面同水平直方图
for(j=MAXHIST;j>0;j--){ //行 for(i=1;i<MAXWORD;i++) //列 if((len=wl[i]*MAXHIST/maxvalue)>=j)printf(" *"); elseprintf(" "); printf("\n");}for(i=1;i<MAXWORD;i++) printf("%4d",wl[i]);printf("\n");for(i=1;i<MAXWORD;i++) printf("%4d",i);printf("\n");if(overflow>0)printf("有 %d 个单词长度超过了 %d ",overflow,MAXWORD);
各字符出现频度的直方图,同水平。
#include<stdio.h>#include<ctype.h>#define MAXCHAR 128 //#define MAXHIST 15 //直方图最长的长度int main(){int c,i,j;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=1;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]);elseprintf("%5d -- --%5d :",i,cc[i]); if(cc[i]>0){ if((len=cc[i]*MAXHIST/maxvalue)<=0) len=1;}elselen=0;for(j=len;j>0;j--)printf(" * ");printf("\n");}}
0 0
- 【C Programming】单词直方图
- C语言打印统计单词长度的直方图<The C Programming Language>课后习题
- C:打印输入单词长度的直方图
- 从头再学C语言:单词长度直方图
- 打印单词长度的直方图--C语言的多种实现
- 【C】打印输入中单词长度的直方图(水平)
- 用c实现单词长度的统计直方图
- The C programming language 1-13 水平方向直方图
- 用C语言绘制直方图,绘制输入单词长度的直方图
- 打印单词直方图
- 单词长度的水平直方图
- 单词长度的水平直方图
- 单词长度的垂直直方图
- C语言程序设计习题1-13 水平方向打印单词长度直方图
- C程序设计语言,练习1-13,编写一个程序,打印输入单词的直方图(垂直方向)
- 第7周 C语言程序设计(新2版) 练习1-13 打印输入单词长度的直方图(水平与垂直)
- 打印输入中单词长度的直方图
- 打印输入中单词长度的直方图
- 用ajax请求返回来的list集合在页面上迭代显示出来
- 【 D3.js 进阶系列 — 2.1 】 力学图的事件 + 顶点的固定
- js之Dom
- Poedu_C语言_lesson11_20160911_char类型
- C++技术知识点(原版)
- 【C Programming】单词直方图
- RFID与NFC之间的区别
- 排序
- 最大公共子序列LCS
- delphi xe 10.1 xml解析
- LeetCode 15 -- 3 Sum
- PHP耦合设计模式的理解
- js图片库(js dom 编程艺术第四章)
- ToolBar的使用