出现次数最多的字母
#include<bits/stdc++.h>
using namespace std;
int main()
{ char a[100],b;
int fre[26];
int i,len,big=0,cs=0;
fgets(a, sizeof(a), stdin); //11111 输入字符串储存在a中; fgets格式fgets(a,sizeof(a),stdin)
for(i=0;i<26;i++)
fre[i]=0; //222初始化fre数组
len=strlen(a); //333长度
for(i=0;i<len;i++)
if(a[i]>='a'&&a[i]<='z') //44444如果该字母在a-z之间,继续执行;
fre[a[i]-'a']++; //55555数组中第a[i]-'a'个元素+1
for(i=0;i<len;i++)
if(a[i]>='A'&&a[i]<='Z')
fre[a[i]-'A']++;
for(i=0;i<26;i++)
if(fre[i]>big){big=fre[i]; //666输出数组中最大值
b = 'a'+ i;} //'a'表示97 ,b是字符,可以将ascll数字换成字母
printf("%c",b);
return 0;
}
帮助理解'a'+i
for (int i = 0; i < 26; ++i) {
char c = 'a' + i;
// 处理字符c
}
循环会依次处理小写字母a到z。
出现次数最多的字母的次数
#include<bits/stdc++.h>
using namespace std;
int main()
{ char a[100];
int fre[26];
int i,len,big=0;
fgets(a, sizeof(a), stdin); //11111 输入字符串储存在a中; fgets格式fgets(a,sizeof(a),stdin)
for(i=0;i<26;i++)
fre[i]=0; //222初始化fre数组
len=strlen(a); //333长度
for(i=0;i<len;i++)
if(a[i]>='a'&&a[i]<='z') //44444如果该字母在a-z之间,继续执行;
fre[a[i]-'a']++; //55555数组中第a[i]-'a'个元素+1
for(i=0;i<len;i++)
if(a[i]>='A'&&a[i]<='Z')
fre[a[i]-'A']++;
for(i=0;i<26;i++)
if(fre[i]>big)big=fre[i]; //666输出数组中最大值
printf("%d",big);
return 0;
}