接受一行 ascii 字符串(最大字符数为127个字符)作为输入,并输出出现次数最多的字母(但区分大小写)。如果输入中不包含字母,则显示为 none。如果有多个字符出现次数最多,输出ascii中最小的字母。
例 输入 AAaa 输出 A
输入 123 输出 none
完全找不到思路,求问应该怎么写,谢谢
接受一行 ascii 字符串(最大字符数为127个字符)作为输入,并输出出现次数最多的字母(但区分大小写)。如果输入中不包含字母,则显示为 none。如果有多个字符出现次数最多,输出ascii中最小的字母。
例 输入 AAaa 输出 A
输入 123 输出 none
完全找不到思路,求问应该怎么写,谢谢
int main(void)
{
char ch, asc[52] = {0};//asc前26个大写字母,后26个小写字母
int i, max = 0, index = -1;
while ((ch = getchar()) != '\n')
{
if (ch >= 'A' && ch <= 'Z')
asc[ch - 'A']++;
if (ch >= 'a' && ch <= 'z')
asc[ch - 'a' + 26]++;
}
for (i = 0; i < 52; i++)
{
if (asc[i] > max)
{
max = asc[i];
index = i;
}
}
if (index == -1)
printf("none\n");
else
printf("%c\n", (index < 26) ? 'A' + index : 'a' + index - 26);
return 0;
}