【问题描述】小民同学所在的班级有n名同学,这n名同学的姓名都是由小写英文字母组成的,这些同学的姓名中包含空格。现在小民想知道这n名同学的姓名中a-z哪个英文字母出现最多,其出现次数是多少?
【输入形式】
第1行为一个整数n,表示该班学生的人数。
下面为n行字符串(每行字符串不超过30个字符),表示n个同学的姓名。
【输出形式】
输出出现次数最多(相同则分行一起输出)的字母字符和次数,并用空格隔开。
【样例输入1】
1
zhang zhe
【样例输出1】
h 2
z 2
【样例输入2】
3
li hong
wang qiang
zhang tao
【样例输出2】
a 4
g 4
n 4
#include <iostream>
#include <string>
using namespace std;
int main(){
int i,j,rs,char name[100][100];
int xb[26]={0};
cin>>rs;//人数
//循环输入rs个字符串 ,可读入空格
for(i=0;i<rs;i++){
cin.getline(name[i],100); }
for(i=0;i<rs;i++)
for(j=0;name[i][j]!="\n";j++)
if(name[i][j]!=' ') //空格不管
xb[name[i][j]-'a']++;//下标为对应的ASCLL码值数组加1
return 0;
}
目前敲出来这么多,希望可以进行补充,如果有错帮指出,(我定义的是字符数组,可改用string类型的一维数组)有注释就更完美了,谢谢!!