Найти, какой символ чаще других встречается в строке 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];
}

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

В данном коде реализован алгоритм подсчета частоты встречаемости каждого символа в строке, а также определяется символ, который встречается чаще всего.

  1. В первой строке объявляется статическая переменная freq, которая представляет собой массив, в котором будут храниться частоты встречаемости каждого символа в строке.
  2. Затем объявляются три переменные: i, str и x.
  3. В цикле for происходит инициализация всех элементов массива freq нулями.
  4. В цикле while происходит проход по каждому символу строки str. Значение каждого символа приводится к типу unsigned char и увеличивается значение соответствующего элемента массива freq.
  5. После прохода по всей строке, значение переменной x устанавливается равным 32 (это значение соответствует пробелу).
  6. В цикле for происходит проход по всем символам, начиная с 33 (это значение соответствует !) и заканчивая 256 (это максимальное значение типа char). Если значение текущего элемента массива freq больше значения переменной x, то значение переменной x заменяется на текущий символ.
  7. После прохода по всем символам, значение переменной n устанавливается равным значению переменной x. Таким образом, после выполнения данного кода, в переменной n будет храниться количество раз, которое символ, представленный значением переменной x, встречается в строке.

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

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