Определить число фрагментов слов, в которых буквы идут по алфавиту - C (СИ)
Формулировка задачи:
Вот такое задание имеется:
Дан текст. Определить число фрагментов слов, в которых буквы идут по-алфавиту.
Предлагается реализовать двумя методами: Хотелось бы узнать, можно ли такое задание осуществить через метод бинарного поиска? И если использовать метод последовательного поиска, то подразумевается просто последовательное сравнение символов по коду ASCII? (оба метода понятны с массивами чисел, а вот такое "алфавитное задание" немного ставит в тупик) спасибо заранее.Решение задачи: «Определить число фрагментов слов, в которых буквы идут по алфавиту»
textual
Листинг программы
while (читаем символ)
while (символ(1) == буква и ((следующий символ(2) == буква) и (следующий символ(2) == 'символ' + 1))
буквы_по_алфавиту++
if (буквы_по_алфавиту > 2)
{
фрагменты++
буквы_по_алфавиту = 0
}
Объяснение кода листинга программы
Код решает задачу подсчёта числа фрагментов слов, в которых буквы идут по алфавиту.
- В начале программы объявлены две переменные:
—
буквы_по_алфавиту— счётчик букв, которые идут по алфавиту; —фрагменты— счётчик фрагментов слов. - В цикле
whileпрограмма считывает каждый символ слова до тех пор, пока не встретит символ, не являющийся буквой. - Для каждого считанного символа выполняется проверка:
— если текущий символ равен предыдущему символу и следующий символ также равен предыдущему символу и следующей букве алфавита, то увеличивается счётчик
буквы_по_алфавиту; — если счётчикбуквы_по_алфавитубольше 2, то увеличивается счётчикфрагментыи сбрасывается счётчикбуквы_по_алфавитув ноль. - После окончания цикла выполняется проверка: если счётчик
фрагментыбольше 2, то это значит, что в слове было больше двух фрагментов, в которых буквы идут по алфавиту.