c++2. 从键盘输入一个不包括空格的仅由英文字母组成的字符串,长度不超过200个字符。统计26个英文字母的使用频率(出现的次数),不区分大小写。最后按使用频率从大到小的顺序输出字母(小写字母)及其使用频率,没有出现的字母不输出。
时间: 2023-05-26 19:03:38 浏览: 121
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
char str[201];
int freq[26] = {0}; // 存储每个字母的使用频率,初始值为0
cin >> str;
int len = strlen(str);
for (int i = 0; i < len; i++)
{
if (str[i] >= 'a' && str[i] <= 'z') // 统计小写字母的使用频率
freq[str[i] - 'a']++;
else if (str[i] >= 'A' && str[i] <= 'Z') // 统计大写字母的使用频率
freq[str[i] - 'A']++;
}
int count = 0;
for (int i = 0; i < 26; i++)
{
if (freq[i] > 0) // 如果该字母出现过,则输出字母及其使用频率
{
cout << (char)(i + 'a') << ":" << freq[i] << endl;
count++;
}
}
if (count == 0) // 如果所有字母都没有出现过,则输出"None"
cout << "None" << endl;
else // 否则按使用频率从大到小排序输出
{
int maxFreq = 0;
for (int i = 0; i < 26; i++)
maxFreq = max(maxFreq, freq[i]);
while (maxFreq > 0)
{
for (int i = 0; i < 26; i++)
{
if (freq[i] == maxFreq)
cout << (char)(i + 'a') << ":" << freq[i] << endl;
}
maxFreq--;
}
}
return 0;
}
阅读全文