IOS之C语言打印直方图
2015-06-04 20:26
148 查看
统计文本单词长度出现频率并打印直方图。
#include<stdio.h> #define MAXHIST 15 #define MAXWORD 11 //统计最长单词的长度 #define IN 1 //状态标示 #define OUT 0 int main(){ int c,i,nc,state; int len; int maxvalue; int ovflow; int wl[MAXWORD]; state=OUT; nc=0; ovflow=0; for(i=0;i<MAXWORD;i++) wl[i]=0; while((c=getchar())!=EOF){ if(c==' '||c=='\n'||c=='\n'){ state=OUT; if(nc>0){ if(nc<MAXWORD) wl[nc]++; else ovflow++; nc=0; } }else if(state==OUT){ state=IN; nc=1; } else nc++; } //文本输入,统计各个长度单词出现频率 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]); printf("%d ",len); if(wl[i]>0){ if((len=wl[i]*MAXHIST/maxvalue)<=0) //画出直方图 len=1; }else len=0; while(len>0){ putchar('*'); len--; } putchar('\n'); } if(ovflow>0) printf("There are %d words>= %d\n",ovflow,MAXWORD); }
下面是竖状直方图,文本输入一样,关键利用二层循环嵌套输出*
#include<stdio.h> #define MAXHIT 15 #define MAXWORD 11 #define IN 1 #define OUT 0 int main(){ int c,i,j,nc,state; int maxvalue; int ovflow; int wl[MAXWORD]; state=OUT; nc=0; ovflow=0; for(i=0;i<MAXWORD;i++) wl[i]=0; while((c=getchar())!=EOF){ if(c==' '||c=='\n'||c=='\t'){ state=OUT; if(nc>0){ if(nc<MAXWORD) wl[nc]++; else ovflow++; } nc=0; } else if(state==OUT){ state=IN; nc=1; } else nc++; } maxvalue=0; for(i=1;i<MAXWORD;i++){ if(wl[i]>maxvalue) maxvalue=wl[i]; } for(i=MAXHIT;i>0;--i){ for(j=1;j<MAXWORD;j++){ if(wl[j]*MAXHIT/maxvalue>=i) printf(" *"); else printf(" "); } putchar('\n'); } for(i=1;i<MAXWORD;i++) printf("%4d",i); putchar('\n'); for(i=1;i<MAXWORD;i++) printf("%4d",wl[i]); putchar('\n'); if(ovflow>0) printf("There are %d words >=%d\n",ovflow ,MAXWORD); }
相关文章推荐
- C语言中关于文件操作的一些用法
- C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法
- Remove Linked List Elements
- 【C语言/算法之 01 背包】完全背包
- 【学习笔记】【C语言】sizeof
- C语言数组与指针的问题
- C++返回引用的函数
- C++ 智能指针类
- chapter10test6
- mutable在c++中的用法
- C++开发BHO之HelloWorld
- leetcode 日经贴,Cpp code -Maximal Square
- 一套C、C++综合测试题(20)
- 排列组合算法之二: 01转换法_java改变后的c++改进版
- [C++]对字符串向量排序
- C++ new失败的处理
- C++类的公用继承输入日志标题
- C++派生类成员的访问属性
- C/C++字符串的输入
- C++派生类的构成