c语言字符数组的课后题

幼儿园某个班级共有学生20人,l按照身高给学生分配座位,教室为五行四列,如果有新增小朋友,增加行。
问:定义一个字符数组,数组内容为学生姓名(英文名),分别统计不同字母开头的小朋友的个数。例如姓名以L开头的小朋友3个,姓名以P开头的小朋友4个。


#include<iostream>
using namespace std;
char a[1000];
int b[1000];
int main(){
    for(int i=1;i<=20;i++){
        cin>>a;
        b[a[0]]++;
    }
    for(char i='A';i<='z';i++)
        if(b[i]) cout<<i<<":"<<b[i]<<endl;
    return 0;
}

只是要答案的话,考虑下这样,转换为一个数组,然后计数第一个字母,分别输出。代码可以写的简洁点。