Дана строка. Найти символ в строке, встречающийся наибольшее число раз - C (СИ)
Формулировка задачи:
Дана строка. Найти символ в строке, встречающийся наибольшее число раз. Заранее спасибо!
Решение задачи: «Дана строка. Найти символ в строке, встречающийся наибольшее число раз»
textual
Листинг программы
- #include <stdio.h>
- char max_symbol(char* str)
- {
- static int counters[256];
- int i;
- for( i = 0; i < 256; ++i ) { counters[i] = 0; }
- int x;
- while( x = (unsigned char) *str++ ) {
- counters[x]++;
- }
- x = 0;
- for( i = 1; i < 256; ++i ) {
- if( counters[i] > counters[x] ) { x = i; }
- }
- return x;
- }
- int main(void)
- {
- printf("%c\n", max_symbol("abracadabra"));
- return 0;
- }
Объяснение кода листинга программы
Вывод на экран будет символом, который встречается в строке наибольшее число раз. В данном случае выведется буква a
.
В функции max_symbol
используется статический массив counters
для подсчёта количества каждого символа в строке.
- Инициализировать все значения массива
counters
нулями. - Проходить по каждому символу в строке и увеличивать значение в соответствующей ячейке массива
counters
. - Найти максимальное значение в массиве
counters
. - Вернуть символ, соответствующий максимальному значению.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д