题目链接:http://poj.org/problem?id=2136

题意不难理解,就是输入四行字符串(每行字符总数不超过72个),统计26个英文字母的数目,并按柱状图的形式输出。我的思路就是,先用一维数组total[]统计每个英文字母的个数,接着找出最大的频率,保存在max中;紧接着用一个二维数组word[][](这个比较关键)记录每一个字母在0~max中是否存储数据,有的话则置1,没有则为0。(假如:字母'A'的频率是2,max = 10,那么word[0][0] = 0, word[0][1] = 1, word[0][2] = 1, word[0][3] = 0......word[0][10] = 0,代表)接着用两重循环输出表格即可。

 #include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std; const int maxn = ; int main()
{
char s[];
int i, j, n, len, max, total[maxn], word[maxn][];
n = ;
memset(total, , sizeof(total));
while (n--)
{
gets(s);
len = strlen(s);
for (i = ; i < len; i++)
{
total[s[i]-'A']++; // 统计每个字母出现的次数(total[0]对应'A',total[1]对应'B',依此类推)
}
}
max = total[];
for (i = ; i <= ; i++)
{
if (max < total[i]) // 在所有字母中找出最大的出现次数
max = total[i];
}
memset(word, , sizeof(word));
for (i = ; i <= ; i++)
{
for (j = ; j <= total[i]; j++)
{
word[i][j] = ; // 标记每个字母出现的数目
}
}
for (i = max; i > ; i--)
{
for (j = ; j <= ; j++)
{
if (!word[j][i] && j == )
{
printf(" ");
}
else if (word[j][i] && j == )
printf("*");
else if (!word[j][i])
printf(" ");
else if (word[j][i])
printf(" *");
}
printf("\n");
}
for (i = ; i <= ; i++)
{
if (i == )
printf("%c", i + 'A');
else
printf(" %c", i + 'A');
}
printf("\n");
return ;
}

最新文章

  1. .Net分页实现
  2. 使用spring的邮件发送功能
  3. I.MX6 gpio-keys driver hacking
  4. quartz 两次执行问题
  5. jQuery日期联动插件
  6. 【转】c++继承:公有、私有、保护
  7. .NET中操作IPicture、IPictureDisp
  8. Spring Controller单元测试
  9. 个人作业3--个人总结(Alpha阶段)
  10. Android:Error:Execution failed for task &#39;:app:transformResourcesWithMergeJavaResForDebug&#39;.
  11. django笔记整理
  12. const类型变量的详细解读
  13. win10下端口被占用解决办法
  14. workman项目设置开机自启动
  15. [cocos2d-x]游戏开发基础(图)
  16. UVA 11235 (RMQ) 频繁出现的数值
  17. iTerm通过堡垒机自动登录服务器
  18. angular学习笔记(三十)-指令(9)-一个简单的指令示例
  19. MAKEFILE 编程基础之一【转】
  20. SQLServer------聚集索引和非聚集索引的区别

热门文章

  1. Oracle数据库语句大全
  2. 点击div区域以外部分,div区域隐藏
  3. SQLServer错误:过程 sp_addextendedproperty,第 xxx 行对象无效。&#39;dbo.xxx.xxx&#39; 不允许有扩展属性,或对象不存在。
  4. Uva11729 Commando War
  5. 以一个权限系统来告别WebForm —开篇
  6. java + jquery + ajax + json 交互
  7. Docker系列之(三):Docker微容器Alpine Linux
  8. Android(Java):jni源代码
  9. object-c 的ARC 问答/介绍
  10. Windows下文件的所有和权限