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

  1. Инициализировать все значения массива counters нулями.
  2. Проходить по каждому символу в строке и увеличивать значение в соответствующей ячейке массива counters.
  3. Найти максимальное значение в массиве counters.
  4. Вернуть символ, соответствующий максимальному значению.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5
Похожие ответы