Я пытаюсь получить наиболее часто встречающиеся символы из массива.Получение наиболее часто встречающихся символов в массиве в c
Вот мой код
#include <stdio.h>
int main(void)
{
int c[1000];
char input[] = "abcdab";
int i;
for(i=0; input[i]; i++)
{
c[input[i]]++;
}
int j = 0;
char str = 0;
for(i=0; i<256; i++)
{
if(c[i] > j)
{
j = c[i];
str = i;
}
}
printf("%c\n", str);
return 0;
}
возвращает «а»
Но я хочу, чтобы получить «A» и «B», так как они являются наиболее частыми символов в массиве. Любая помощь будет оценена, спасибо.
@Olaf Это похоже на довольно короткий и полный пример, в которое было включено желаемое поведение, проблема была упомянута (они получают не a & b). – leigero
Лучше использовать 'c [(unsigned char) input [i]] ++;' для предотвращения отрицательного индекса в массиве. – chux