要求如下
输入输出样式
实现如下
源代码
#include <iostream>
using namespace std;
int main()
{
// 请在此输入您的代码
//整形数组a装的是26个字母出现的频次,初始化={0}是为了让数组内所有元素都被初始化成0。max为频次最高的字母的数组下标
int i,a[26]={0},max=0;
char ch;//ch为输入的字符
//获取字符并令对应a中的数据+1
while((ch=getchar())!='\n'){ //用户输入单词,只有遇到单词为换行符'\n'才跳出循环
//++是让a中对应的字母数+1。 ch-'a'是把字母的序号减去a,这样原来字母的ASCII码就变成了0-25,方便存入数组
a[ch-'a']++;
}
//找出数组中最大的元素
for(i=0;i<26;i++){ //循环比较数组中最大的数
if(a[i]>a[max]) max=i;//若 i下标数 大于 max下标的数(max初值是0),则把i赋值给max;
} //因为等于的情况不赋值,且a数组是按照字典序存储和遍历的。所以默认出现最大的max就是字典序最小那个数
//打印字符要+'a'(和+97是一样的)
printf("%c\n",max+'a');
printf("%d\n",a[max]);
return 0;
}