Đếm tần suất từng ký tự (ASCII 0-255), tìm max.
Thuật toán
freq[256] = {0};
for each char c in string: freq[(int)c]++
max_char = argmax(freq)
Chương trình
#include <stdio.h>
#define SIZE 100
#define CHARS 256
int main() {
char str[SIZE];
int freq[CHARS] = {0}, i = 0, max_char = 0;
printf("Nhap chuoi: "); gets(str);
while (str[i] != '\0') {
freq[(int)str[i]]++;
i++;
}
for (i = 0; i < CHARS; i++)
if (freq[i] > freq[max_char]) max_char = i;
printf("Ky tu '%c' xuat hien nhieu nhat: %d lan", max_char, freq[max_char]);
return 0;
}
Kết quả
Nhap chuoi: tutorials point Ky tu 't' xuat hien nhieu nhat: 3 lan