Произвести в предложении поиск слова в котором будет наибольшее количество гласных букв - C (СИ)

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

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

Необходимо написать код на СИ. Задание:Набрать с клавиатуры предложение и произвести в нем поиск слова в котором будет наибольшее количество гласных букв и вывести это слово. Спасибо большое за внимание и поддержку!

Решение задачи: «Произвести в предложении поиск слова в котором будет наибольшее количество гласных букв»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <ctype.h>
  4.  
  5. int main() {
  6.     const char CDelim[] = " \t\n,..!?";
  7.     const char CVowel[] = "aeiouy";
  8.     char text[256];
  9.     char* ptr, * pcur, * pmax = NULL;
  10.     int max = 0, cnt;
  11.  
  12.     printf("text: ");
  13.     fgets(text, sizeof(text), stdin);
  14.  
  15.     ptr = strtok(text, CDelim);
  16.     while (ptr) {
  17.         cnt = 0;
  18.         for (pcur = ptr; *pcur; ++pcur) {
  19.             if (strchr(CVowel, tolower(*pcur))) {
  20.                 cnt++;
  21.             }
  22.         }
  23.         if (max < cnt) {
  24.             pmax = ptr;
  25.             max = cnt;
  26.         }
  27.  
  28.         ptr = strtok(NULL, CDelim);
  29.     }
  30.  
  31.     if (pmax) {
  32.         printf("maximum vowels(%d) in '%s' word\n", max, pmax);
  33.     }
  34.     else {
  35.         printf("words with vowels not found\n");
  36.     }
  37.  
  38.     return 0;
  39. }

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

В этом коде ищется слово в предложении, в котором содержится наибольшее количество гласных букв. Вот список действий, которые происходят в коде:

  1. Синтаксический анализ: В первых трех строках подключаются необходимые библиотеки.
  2. Инициализация переменных: В следующих строках объявляются и инициализируются необходимые переменные.
    • CDelim[] - это строка-разделитель, которая определяет символы, используемые в качестве разделителей в предложении (пробел, табуляция, перевод строки, точка, запятая, двоеточие, восклицательный знак, вопросительный знак).
    • CVowel[] - это строка, содержащая гласные буквы (a, e, i, o, u, y).
    • text[256] - это массив символов, в который считывается предложение.
    • ptr, pcur, pmax - это указатели на символы в предложении.
    • max - это счетчик, который отслеживает количество гласных букв в текущем слове.
    • cnt - это счетчик, который отслеживает количество гласных букв в текущем слове.
  3. Получение предложения от пользователя: В следующей строке предложение считывается из стандартного ввода.
  4. Разбиение предложения на слова: В следующей строке предложение разбивается на слова с использованием функции strtok(). Первый вызов этой функции возвращает первое слово в предложении, второй вызов - следующее слово, и так далее.
  5. Подсчет гласных букв в каждом слове: Для каждого слова выполняется цикл, который проходит по каждому символу в слове. Если символ является гласной буквой, счетчик cnt увеличивается.
  6. Поиск слова с наибольшим количеством гласных букв: После подсчета количества гласных букв в каждом слове, осуществляется поиск слова с наибольшим количеством гласных букв. Если такое слово найдено, указатель pmax указывает на это слово, а переменная max содержит количество гласных букв в этом слове.
  7. Вывод результата: В последних строках кода выводится сообщение, указывающее, было ли найдено слово с наибольшим количеством гласных букв, и если да, то какое это слово и сколько в нем гласных букв. Вот список номеров и соответствующих действий:
  8. Подключение необходимых библиотек
  9. Инициализация переменных
  10. Считывание предложения от пользователя
  11. Разбиение предложения на слова
  12. Подсчет гласных букв в каждом слове
  13. Поиск слова с наибольшим количеством гласных букв
  14. Вывод результата

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


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

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

13   голосов , оценка 3.923 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы