#include<stdio.h>
#include "string.h"
int main()
{
char s[1000];
int a[128] = {0};//**定义简单的哈希表并确定表长为128(因为ASCII码只占一个字节8位)并赋初值为0**
scanf("%s", s);
int i;
int max = 0;
char t = 0;
for(i = 0; i < strlen(s); i++)
{
a[s[i]]++;//建立哈希表
if (max < a[s[i]])
{
max = a[s[i]];//记录最多出现次数
t = s[i];//记录出现最多的字母
}
else if(max == a[s[i]])//最大次数重复出现
{
if (t < s[i])
{
t = s[i];//比较Ascii码 ,输出较小的
}
}
}
printf("%c\n%d", t, max);
return 0;
}
求大佬解答:
int a[128] = {0};//定义简单的哈希表并确定表长为128(因为ASCII码只占一个字节8位)并赋初值为0
这里确定表长是如何确定的?为什么?