Бесплатный урок с нашим репетитором!

Узнать подробнее

Новая Школа - онлайн-школа подготовки к ЕГЭ
При поддержке
Посмотреть все вопросы нейросети
Бесплатный пробный урок с репетитором

Узнай больше про репетиторов Новой Школы и запишись на бесплатный пробный урок. Мы проверим твой уровень знаний и составим план обучения по любому предмету и классу

Вопрос от Анонимного юзера 04 февраля 2026 20:12

Напишите программу на С++ как начинающий, которая выводит самое длинное слово переданной её символьной строки. Слово – это последовательность непробельных символов, ограниченная пробелами или концами строки. Входные данные Входная строка содержит произвольную последовательность символов. Выходные данные Программа должна вывести в первой строке самое длинное слово переданной ей строки, а во второй – длину этого слова. Если слов максимальной длины несколько — вывести первое встретившееся слово максимальной длины. Примеры Входные данные abra cadabra fibra Выходные данные cadabra 7

Ответ нейросети

04 февраля 2026 20:12

Ниже подробное решение задачи для начинающего C++ программиста, с объяснениями шаг за шагом и примером кода.

Цель: найти самое длинное слово в переданной строке. Слово — последовательность непробельных символов, ограниченная пробелами или концами строки. В случае нескольких слов одинаковой длины выбрать первое встреченное.

Как работает подход:

  • Читаем всю строку.
  • Проходим по символам и собираем текущее слово в переменную cur, пока не встретится пробел.
  • При встрече пробела сравниваем длину cur с текущим максимумом. Если cur длиннее, сохраняем его как лучшее слово.
  • После цикла проверяем последнее слово (если строка не кончилась пробелом).
  • Выводим самое длинное слово и его длину. Если слов нет, выводим пустую строку и 0.

Пояснения по выбору условий:

  • Мы обновляем максимум только при строгом '>' (не '>='), чтобы сохранить первое встретившееся слово максимальной длины.
  • Ввод читается одной строкой через getline, как и требуется в условии задачи.

Код на C++ (C++11/17):

#include #include

int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr);

std::string s;
if (!std::getline(std::cin, s)) return 0;

std::string bestWord = "";
int maxLen = 0;
std::string cur;

for (char c : s) {
    if (c != ' ') {
        cur += c;
    } else {
        if ((int)cur.size() > maxLen) {
            maxLen = (int)cur.size();
            bestWord = cur;
        }
        cur.clear();
    }
}

// Учесть последнее слово после цикла
if ((int)cur.size() > maxLen) {
    maxLen = (int)cur.size();
    bestWord = cur;
}

std::cout << bestWord << "\n" << maxLen << "\n";
return 0;

}

Пример Вход: abra cadabra fibra Выход: cadabra 7

Замечания:

  • Если вход не содержит слов (пустая строка или только пробелы), программа выведет пустую строку в первой строке и 0 во второй.
  • Приведённый код считает слова, разделённые пробелами. Если в задании нужно учитывать и другие пробельные символы (табуляции и т.п.), можно заменить условие c != ' ' на использование isspace(c) и оставить разделителями любые пробельные символы.

Задай свой вопрос

Напиши любую задачу или вопрос, а нейросеть её решит

Похожие вопросы 15

Бесплатно Мобильное приложение ГДЗ
Мобильное приложение ГДЗ

Задавай вопросы искуcственному интеллекту текстом или фотографиями в приложении на iPhone или Android

qr-codegoogle-playapp-store

Саша — ассистент в телеграмме

Напишите программу на С++ как начинающий, которая выводит самое длинное слово переданной её символьной строки. Слово – это последовательность непробельных символов, ограниченная пробелами или концами строки. Входные данные Входная строка содержит произвольную последовательность символов. Выходные данные Программа должна вывести в первой строке самое длинное слово переданной ей строки, а во второй – длину этого слова. Если слов максимальной длины несколько — вывести первое встретившееся слово максимальной длины. Примеры Входные данные abra cadabra fibra Выходные данные cadabra 7
Ниже подробное решение задачи для начинающего C++ программиста, с объяснениями шаг за шагом и примером кода. Цель: найти самое длинное слово в переданной строке. Слово — последовательность непробельных символов, ограниченная пробелами или концами строки. В случае нескольких слов одинаковой длины выбрать первое встреченное. Как работает подход: - Читаем всю строку. - Проходим по символам и собираем текущее слово в переменную cur, пока не встретится пробел. - При встрече пробела сравниваем длину cur с текущим максимумом. Если cur длиннее, сохраняем его как лучшее слово. - После цикла проверяем последнее слово (если строка не кончилась пробелом). - Выводим самое длинное слово и его длину. Если слов нет, выводим пустую строку и 0. Пояснения по выбору условий: - Мы обновляем максимум только при строгом '>' (не '>='), чтобы сохранить первое встретившееся слово максимальной длины. - Ввод читается одной строкой через getline, как и требуется в условии задачи. Код на C++ (C++11/17): #include #include int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); std::string s; if (!std::getline(std::cin, s)) return 0; std::string bestWord = ""; int maxLen = 0; std::string cur; for (char c : s) { if (c != ' ') { cur += c; } else { if ((int)cur.size() > maxLen) { maxLen = (int)cur.size(); bestWord = cur; } cur.clear(); } } // Учесть последнее слово после цикла if ((int)cur.size() > maxLen) { maxLen = (int)cur.size(); bestWord = cur; } std::cout << bestWord << "\n" << maxLen << "\n"; return 0; } Пример Вход: abra cadabra fibra Выход: cadabra 7 Замечания: - Если вход не содержит слов (пустая строка или только пробелы), программа выведет пустую строку в первой строке и 0 во второй. - Приведённый код считает слова, разделённые пробелами. Если в задании нужно учитывать и другие пробельные символы (табуляции и т.п.), можно заменить условие c != ' ' на использование isspace(c) и оставить разделителями любые пробельные символы.