Определить, каких букв больше - М или Н - 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; }
Объяснение кода листинга программы
В этом коде проводится анализ строки, введенной пользователем, с целью определить, какая из букв м
или н
встречается в ней чаще.
- В начале кода объявляется переменная типа char с именем buf и размером BUFSIZ, которая будет использоваться для хранения строки, введенной пользователем.
- Затем в цикле while выполняется следующее:
- Выводится приглашение для ввода строки.
- Считывается строка с помощью функции fgets.
- Проверяется, не пустая ли строка, чтобы избежать обработки пустой строки, оставшейся от предыдущего ввода.
- Внутри цикла while объявляется переменная типа char* с именем p, которая будет использоваться в качестве указателя на текущий символ в строке.
- Инициализируется переменная cmp нулем, которая будет использоваться для подсчета разницы в частоте встречаемости букв
м
ин
. - В цикле for перебираются все символы в строке:
- Если текущий символ равен
м
, то значение переменной cmp уменьшается на единицу. - Если текущий символ равен
н
, то значение переменной cmp увеличивается на единицу.
- Если текущий символ равен
- После окончания цикла for выводится сообщение, сообщающее, какая из букв
м
илин
встречается чаще. - Если значение переменной cmp меньше нуля, выводится сообщение
м wins
, что означает, что буквам
встречается чаще. - Если значение переменной cmp больше нуля, выводится сообщение
n wins
, что означает, что букван
встречается чаще. - Если значение переменной cmp равно нулю, выводится сообщение
the same
, что означает, что буквым
ин
встречаются одинаковое количество раз.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д