Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №2974814
А
Аноним
17 марта 2025 13:34 · публичный вопрос
А
Аноним

Ввести предложение длиной не более 80 символов. Определить длину его первого слова и количество слов короче первого. Вывести эти слова. Количество пробелов между словами…

Запрос пользователя

Ввести предложение длиной не более 80 символов. Определить длину его первого слова и количество слов короче первого. Вывести эти слова. Количество пробелов между словами произвольно. С++

Ответ нейросети
17 марта 2025 13:34

Решим поставленную задачу на языке C++. Мы будем следовать следующим шагам:

  1. Вводим строку, которая представляет собой предложение.
  2. Определяем длину первого слова.
  3. Считаем количество слов, которые короче первого слова, и выводим их.

Вот пошаговое решение:

Шаг 1: Ввод строки

Для ввода строки используем getline, чтобы учитывать пробелы между словами.

Шаг 2: Обработка строки

Нам необходимо найти первое слово и посчитать его длину. Также при обработке будем отслеживать слова, которые короче первого.

Шаг 3: Вывод результата

Выводим длину первого слова и сами слова, которые короче него.

Пример реализации на C++

#include <iostream>
#include <sstream>
#include <vector>
#include <string>

int main() {
    std::string input;
    
    // Ввод строки (предложения) длиной не более 80 символов
    std::cout << "Введите предложение (до 80 символов): ";
    std::getline(std::cin, input);
    
    // Проверяем длину введенной строки
    if (input.length() > 80) {
        std::cout << "Ошибка: предложение должно быть длиной до 80 символов." << std::endl;
        return 1;
    }
    
    std::istringstream stream(input);
    std::string firstWord;
    std::string word;
    std::vector<std::string> shorterWords;
    
    // Получаем первое слово
    if (stream >> firstWord) {
        int firstWordLength = firstWord.length();
        std::cout << "Длина первого слова: " << firstWordLength << std::endl;

        // Находим слова короче первого
        while (stream >> word) {
            if (word.length() < firstWordLength) {
                shorterWords.push_back(word);
            }
        }

        // Выводим слова короче первого
        if (!shorterWords.empty()) {
            std::cout << "Слова короче первого слова: ";
            for (const auto& w : shorterWords) {
                std::cout << w << " ";
            }
            std::cout << std::endl;
        } else {
            std::cout << "Нет слов короче первого слова." << std::endl;
        }
    } else {
        std::cout << "Не удалось получить первое слово." << std::endl;
    }
    
    return 0;
}

Объяснение кода

  1. Ввод строки: Мы используем getline для безопасного ввода строки, что позволяет захватывать пробелы.
  2. Проверка длины строки: Условие if (input.length() > 80) предотвращает ввод слишком длинного предложения.
  3. Обработка с помощью istringstream: Это позволяет легко разбивать строку на слова.
  4. Определение первого слова: С помощью stream >> firstWord извлекаем первое слово и определяем его длину.
  5. Счет слов короче первого: Бежим по оставшимся словам и добавляем в вектор shorterWords те, что короче первого.
  6. Вывод результатов: Печатаем длину первого слова и все слова, которые короче.

Таким образом, мы создаем программу, которая выполняет все условия задачи!