Дана строка. Найти символ в строке, встречающийся наибольшее число раз - 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
. - Вернуть символ, соответствующий максимальному значению.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д