poj 百练2800 垂直直方图
2018-03-21 19:42
274 查看
这一道题的输入输入输出很有特点,我的输入部分略显复杂,但是这样会更加鲁棒。
主要考虑到不同平台下换行符可能不一样,有的是
主要考虑到不同平台下换行符可能不一样,有的是
\n,有的是
\r,有的是
\n\r,输入文件不一定有EOF
#include<cstdio> #include<iostream> #include<cmath> #include<cstring> using namespace std; int cnt[30]; int main(){ int line=0; bool lineEnd=0; char ch; while(1){ if(line==4) break;//读取了四行,退出 if(line==3&&lineEnd) break;//避免没有EOF的情况 if(scanf("%c",&ch)==EOF) {break;} else if(lineEnd&&ch!='\n'&&ch!='\r') {++line;lineEnd=0;}//只有当读到新行,才line++ if(ch>='A'&&ch<='Z') ++cnt[ch-'A']; else if(ch=='\n'||ch=='\r') lineEnd=1; } int h=0; for(int i=0;i<26;++i) h=max(h,cnt[i]); for(int i=0;i<h;++i){ for(int j=0;j<26;++j){ if(j) printf(" "); 4000 if(i<h-cnt[j]) printf(" "); else printf("*"); } printf("\n"); } for(int i=0;i<26;++i) { if(i) printf(" "); printf("%c",i+'A'); } printf("\n"); return 0; }
相关文章推荐
- POJ 百炼 保研机试 2800:垂直直方图
- poj&nbsp;百炼&nbsp;2800:垂直直方图
- POJ 2800 垂直直方图 解题报告
- 百练2800:垂直直方图题解
- 读取带空格字符串时候可以用while((c=getchar())!='\n') 2800:垂直直方图
- poj:垂直直方图
- POJ 2136 Vertical Histogram(垂直直方图)
- Poj 2136 Vertical Histogram(打印垂直直方图)
- 百练2800:垂直直方图
- Poj 2136 Vertical Histogram(打印垂直直方图)
- 百练OJ:2800:垂直直方图
- 编写一个程序,打印输入中单词长度的水平和垂直方向直方图
- 打印输入中单词长度的直方图(垂直方向)
- C程序设计语言,练习1-13,编写一个程序,打印输入单词的直方图(垂直方向)
- 打印输入中单词长度的直方图,垂直方向的。折磨使我强大的一个程序!
- 04-垂直直方图
- 04-垂直直方图
- 第7周 C语言程序设计(新2版) 练习1-13 打印输入单词长度的直方图(水平与垂直)
- OpenCV2.4.13 文本分割(水平垂直,直方图投影)
- 04-垂直直方图