問題描述:
請編寫程序,找出一段給定文字中出現(xiàn)最頻繁的那個英文字母。
輸入格式:
輸入在一行中給出一個長度不超過 1000 的字符串。字符串由 ASCII 碼表中任意可見字符及空格組成,至少包含 1 個英文字母,以回車結束(回車不算在內(nèi))。
輸出格式:
在一行中輸出出現(xiàn)頻率最高的那個英文字母及其出現(xiàn)次數(shù),其間以空格分隔。如果有并列,則輸出按字母序最小的那個字母。統(tǒng)計時不區(qū)分大小寫,輸出小寫字母。
輸入樣例:
This is a simple TEST. There ARE numbers and other symbols 1&2&3...........
輸出樣例:
e 7
解題思路:
建立一個數(shù)組統(tǒng)計各字母出現(xiàn)的次數(shù),找出最大的那個,輸出
代碼實現(xiàn):
#include<iostream>
#include<string>
using namespace std;
int main(){
string s;
int p,count[30]={};
int m=0,max=0;
getline(cin,s);
for(int i=0;i<s.length();i++){
if(s[i]>='a'&&s[i]<='z'){
p=s[i]-'a';
count[p]++;
}
if(s[i]>='A'&&s[i]<='Z'){
p=s[i]-'A';
count[p]++;
}
}
for(int i=0;i<26;i++){
if(count[i]>max){
max=count[i];
m=i;
}
}
cout<<char('a'+m)<<" "<<max;
}