Дана строка символов до точки. Определить, сколько слов, состоящих из 5 и более символов, содержит данная строка - C (СИ)

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

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

Доброго времени суток! Нужно решить такую задачу (желательно с блок-схемой): Дана строка символов до точки. Определить, сколько слов, состоящих из 5 и более символов, содержит данная строка.

Решение задачи: «Дана строка символов до точки. Определить, сколько слов, состоящих из 5 и более символов, содержит данная строка»

textual
Листинг программы
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
 
int main()
{
    int i,j=0,k,a=0;
    char str[1000];
 
    gets(str);      //принимаем текст
 
    for(i=0;i<strlen(str);i++)
    {
        if (str[i] != ' ' && str[i] != ',' && str[i] != '.' && str[i] != ':' && str[i] != '-')  //находим слово(я взял что слова в тексте розделены только такими знаками
            j = i;                                                                              //хочеш можно добавить свои)
        else
        {
            k=0;    //считает количество букв
            while (str[j] != ' ' && str[j] != ',' && str[j] != '.' && str[j] != ':' && str[j] != '-' && j != -1)
            {
                k++;
                j--;
            }
            if (k >=5)  //если количество больше равно 5 - записываем
                a++;
        }
    }
 
    printf("Answer: %d\n",a);
}

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

  1. Включаем необходимые заголовочные файлы:
    • stdio.h для работы с функциями ввода-вывода
    • stdlib.h для работы с функцией atoi, используемой для преобразования строки в целое число
    • conio.h для работы с функцией getch, используемой для приостановки выполнения программы до нажатия клавиши
  2. Создаем переменные:
    • int i, j=0, k, a=0;
  3. Принимаем текст из консоли в строку str с помощью функции gets.
  4. Находим слова в тексте:
    • for(i=0;i<strlen(str);i++)
    • if (str[i] != ' ' && str[i] != ',' && str[i] != '.' && str[i] != ':' && str[i] != '-')
  5. Считаем количество букв в найденном слове:
    • k=0;
    • while (str[j] != ' ' && str[j] != ',' && str[j] != '.' && str[j] != ':' && str[j] != '-' && j != -1)
  6. Увеличиваем счетчик k и уменьшаем индекс j на единицу при каждом шаге цикла.
  7. Проверяем, что количество букв в слове больше или равно 5:
    • if (k >=5)
  8. Увеличиваем счетчик a на единицу, если условие выполняется.
  9. Выводим результат на экран с помощью функции printf.
  10. Завершаем программу с помощью функции main.

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


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

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

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