Определить, каких букв больше - М или Н - C (СИ)

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

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

Язык Си. Дано предложение. Определить, каких букв в нем больше: м или н. Помогите с решением кому не сложно.

Решение задачи: «Определить, каких букв больше - М или Н»

textual
Листинг программы
#include <stdio.h>
 
int main(void) {
    char buf[BUFSIZ];
 
    while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ) {
        char * p = buf;
        int cmp = 0;
 
        for ( ; *p; ++p ) {
            if ( *p == 'm' )
                --cmp;
            else if ( *p == 'n' )
                ++cmp;
        }
 
        printf("%s\n", ( cmp < 0 ) ? "m wins" : ( cmp > 0 ) ? "n wins" : "the same");
    }
 
    return 0;
}

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

В этом коде проводится анализ строки, введенной пользователем, с целью определить, какая из букв м или н встречается в ней чаще.

  1. В начале кода объявляется переменная типа char с именем buf и размером BUFSIZ, которая будет использоваться для хранения строки, введенной пользователем.
  2. Затем в цикле while выполняется следующее:
    • Выводится приглашение для ввода строки.
    • Считывается строка с помощью функции fgets.
    • Проверяется, не пустая ли строка, чтобы избежать обработки пустой строки, оставшейся от предыдущего ввода.
  3. Внутри цикла while объявляется переменная типа char* с именем p, которая будет использоваться в качестве указателя на текущий символ в строке.
  4. Инициализируется переменная cmp нулем, которая будет использоваться для подсчета разницы в частоте встречаемости букв м и н.
  5. В цикле for перебираются все символы в строке:
    • Если текущий символ равен м, то значение переменной cmp уменьшается на единицу.
    • Если текущий символ равен н, то значение переменной cmp увеличивается на единицу.
  6. После окончания цикла for выводится сообщение, сообщающее, какая из букв м или н встречается чаще.
  7. Если значение переменной cmp меньше нуля, выводится сообщение м wins, что означает, что буква м встречается чаще.
  8. Если значение переменной cmp больше нуля, выводится сообщение n wins, что означает, что буква н встречается чаще.
  9. Если значение переменной cmp равно нулю, выводится сообщение the same, что означает, что буквы м и н встречаются одинаковое количество раз.

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


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

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

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