Найти, какой символ чаще других встречается в строке s и сколько раз он в нее входит - C (СИ)
Формулировка задачи:
Программа. Описать функцию f (s, n, x), определяющую, какой
символ чаще других встречается в строке s и сколько раз он в нее входит. Если
таких символов несколько, то взять первый из них по алфавиту. С помощью
этой функции провести анализ строки str.
ЛЮДИ ДОБРЫЫЫЫЫЕ, ПОМОГИТЕ разобраться!!!
Решение задачи: «Найти, какой символ чаще других встречается в строке s и сколько раз он в нее входит»
textual
Листинг программы
- void freqchar(char* str, int* n, char* x) {
- static int freq[256];
- int i;
- for (i = 0; i < 256; i++) { freq[i] = 0; }
- while (*x = *str++) {
- freq[(unsigned char)*x]++;
- }
- *x = 32;
- for (i = 33; i < 256; i++) {
- if (freq[i] > freq[(unsigned char)*x]) {
- *x = (char)i;
- }
- }
- *n = freq[(unsigned char)*x];
- }
Объяснение кода листинга программы
В данном коде реализован алгоритм подсчета частоты встречаемости каждого символа в строке, а также определяется символ, который встречается чаще всего.
- В первой строке объявляется статическая переменная freq, которая представляет собой массив, в котором будут храниться частоты встречаемости каждого символа в строке.
- Затем объявляются три переменные: i, str и x.
- В цикле for происходит инициализация всех элементов массива freq нулями.
- В цикле while происходит проход по каждому символу строки str. Значение каждого символа приводится к типу unsigned char и увеличивается значение соответствующего элемента массива freq.
- После прохода по всей строке, значение переменной x устанавливается равным 32 (это значение соответствует пробелу).
- В цикле for происходит проход по всем символам, начиная с 33 (это значение соответствует !) и заканчивая 256 (это максимальное значение типа char). Если значение текущего элемента массива freq больше значения переменной x, то значение переменной x заменяется на текущий символ.
- После прохода по всем символам, значение переменной n устанавливается равным значению переменной x. Таким образом, после выполнения данного кода, в переменной n будет храниться количество раз, которое символ, представленный значением переменной x, встречается в строке.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д