练习系统 实验一 垂直直方图
2017-02-21 21:42
281 查看
| |||
当前编程题:实验一 简单计算问题(16级)---垂直直方图 |
6. | 问题描述 输入4行全部由大写字母组成的文本,输出一个垂直直方图,给出每个字符出现的次数。注意:只用输出字符的出现次数,不用输出空白字符,数字或者标点符号的输出次数。 输入形式 输入包括4行由大写字母组成的文本,每行上字符的数目不超过80个。 输出形式 输出包括若干行。其中最后一行给出26个大写英文字母,这些字母之间用空格隔开。前面的几行包括空格和星号,每个字母出现几次,就在这个字母的上方输出一个星号。注意:输出的第一行不能是空行。 样例输入 THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG. THIS IS AN EXAMPLE TO TEST FOR YOUR HISTOGRAM PROGRAM. HELLO! 样例输出 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 和那一道填词的题差不多方法 不过还没有那个难想呢 #include<stdio.h> #include<string.h> int main() { int ch[26],i,j,max,bb[20][26]={0}; char aa[4][80]; memset(ch,0,sizeof(ch)); for(i=0;i<20;i++) memset(bb[i],0,sizeof(bb[i])); for(i=0;i<4;i++) { gets(aa[i]); } for(i=0;i<4;i++) { for(j=0;aa[i][j]!='\0';j++) { if(aa[i][j]>='A'&&aa[i][j]<='Z') ch[aa[i][j]-'A']++; } } max=ch[0]; for(i=0;i<26;i++) { if(max<ch[i]) max=ch[i]; } for(i=0;i<26;i++) { for(j=0;j<ch[i];j++) { bb[max-1-j][i]=1; } } for(i=0;i<max;i++) { for(j=0;j<26;j++) { if(bb[i][j]==0) printf(" "); if(bb[i][j]==1) printf("* "); } printf("\n"); } for(i=0;i<26;i++) { printf("%c ",i+'A'); } return 0; } | |
相关文章推荐
- 练习系统 实验一 两倍数
- 练习系统 实验一 谁拿了最多的奖学金
- 练习系统 实验三 求大整数的阶乘
- 练习系统 实验四 red and black
- 练习系统 实验四 迷宫
- 练习1-13 打印水平或垂直直方图
- 练习1-13 编写一个程序,打印输入中单词长度的垂直方向的直方图(垂直图)
- 练习系统 实验三 大整数除法
- 练习系统 实验三 数字三角形
- 练习 1 - 13 编写一个程序,打印输入中单词长度的水平直方图 和 垂直直方图
- 练习系统 实验一 简单密码
- 练习系统 实验二 字符串判等
- 练习系统 实验二 电话号码
- 练习系统 实验三 菲波那契数列
- 练习系统 实验二 循环数
- 练习系统 实验一 填词
- 练习系统 实验二 十进制到R进制
- 练习系统 实验二 计算2的N次方
- 练习系统 实验四 八皇后(枚举法)
- Android Studio Okhttp3医院预约挂号系统练习实验程序Android客户端+JSP Servlet服务器端