Дана строка. Найти символ в строке, встречающийся наибольшее число раз - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дана строка. Найти символ в строке, встречающийся наибольшее число раз. Заранее спасибо!

Решение задачи: «Дана строка. Найти символ в строке, встречающийся наибольшее число раз»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. char max_symbol(char* str)
  4. {
  5.     static int counters[256];
  6.     int i;
  7.     for( i = 0; i < 256; ++i ) { counters[i] = 0; }
  8.     int x;
  9.     while( x = (unsigned char) *str++ ) {
  10.         counters[x]++;
  11.     }
  12.     x = 0;
  13.     for( i = 1; i < 256; ++i ) {
  14.         if( counters[i] > counters[x] ) { x = i; }
  15.     }
  16.     return x;
  17. }
  18.  
  19. int main(void)
  20. {
  21.     printf("%c\n", max_symbol("abracadabra"));
  22.     return 0;
  23. }

Объяснение кода листинга программы

Вывод на экран будет символом, который встречается в строке наибольшее число раз. В данном случае выведется буква a. В функции max_symbol используется статический массив counters для подсчёта количества каждого символа в строке.

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

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


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

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

15   голосов , оценка 3.933 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы