字母频率统计

简介: 编写程序从标准输入中读入一段英文,统计其中小写字母出现次数,并按照从大到小的顺序以柱状图的形式显示其出现次数,出现次数为0的不输出。
【问题描述】

编写程序从标准输入中读入一段英文,统计其中小写字母出现次数,并按照从大到小的顺序以柱状图的形式显示其出现次数,出现次数为0的不输出。

【输入形式】

在标准输入上输入一段英文文章(可能有一行,也可能有多行),在新的一行的开头输入ctrl+z键表示结束。

【输出形式】

在屏幕上按照从大到小的顺序输出表示每个小写字母出现次数的柱状图(以“#”字符表示柱状图,空白处用空格字符表示,某个小写字母出现多少次,就显示多少“#”字符;柱状图的高度以出现最多的字母次数为准;出现次数为0的不输出),不输出相对应的小写字母。若文章中没有小写字母,则什么都不输出。

【样例输入】

The computing world has undergone a

revolution since the publication of

The C Programming Language in 1978.

【样例输出】
#          
###         
####         
######        
########       
##########      
#############    
################   
#################### 
【样例说明】

字母b、f、v和w只出现了一次,所以最右方只有一个“#”的柱状表示这四个字母的出现次数。出现次数最多的是字母n,所以柱状图的高度为9个字符,在图的最左边。没有出现的字母,其出现次数忽略,没有显示。注意:除了最高的柱状图外,其它用“#”表示的柱状上方的空白处是用空格符填充。

代码
#include <stdio.h>
#include <string.h>
int main()
{
    char str[100][100];
    char temp;
    int length = 0, j, i, c;
    while (scanf("%s", str[length]) != EOF)
    {
        length++;
    }
    int letter[26] = {0};
    int len;
    for (j = 0; j < length; j++)
    {
        len = strlen(str[j]);
        for (i = 0; i < len; i++)
        {
            temp = str[j][i];
            if (temp >= 'a' && temp <= 'z')
            {
                letter[temp - 'a']++;
            }
        }
    }

    int max=0;
    //输出小写字母统计结果。
    for (c = 0; c < 26; c++)
    {
        // if(letter[c]!=0){
        //     printf("%c:%d\n", c+'a', letter[c]);
        // }
        if (letter[c] > max)
        {
            max = letter[c];
        }
    }
    int x;
    for (; max > 0; max--)
    {
        for (x = 0; x < 26; x++)
        {
            if (letter[x] >= max)
            {
                putchar('#');
            }
        }
        putchar('\n');
    }
    return 0;
}
目录
相关文章
|
3月前
|
算法 Java C++
统计单词数
统计单词数
47 0
|
21天前
|
算法
统计一字符串中,重叠字符出现的次数
统计一字符串中,重叠字符出现的次数
20 0
|
Java
统计字符数量
统计字符数量
69 0
|
算法
统计文本中单字母、双字母、三字母的频率
统计文本中单字母、双字母、三字母的频率
91 0
R7-2 统计字符[2]
R7-2 统计字符[2]
84 0
LeetCode 451. 根据字符出现频率排序
给定一个字符串,请将字符串里的字符按照出现的频率降序排列。
78 0
|
算法
算法练习——(4)统计特定字符数量
.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
|
测试技术
寻找出现次数最多的字母(单词分析)
寻找出现次数最多的字母(单词分析)