Для решения данной задачи в языке программирования C++ можно использовать следующий алгоритм:
- Создать массив или вектор для хранения входных слов.
- Запросить у пользователя ввод необходимого символа.
- Создать новый массив или вектор для хранения только тех слов, которые начинаются на заданный символ.
- Отсортировать этот новый массив или вектор по длине слова.
- Вывести отсортированный массив или вектор.
Приведу пример кода на C++:
#include <iostream> #include <vector> #include <algorithm> int main() { std::vector<std::string> words; // создаем вектор для хранения слов int n; // количество слов std::cout << "Введите количество слов: "; std::cin >> n; // заполняем вектор входными словами std::cout << "Введите слова: " << std::endl; for (int i = 0; i < n; i++) { std::string word; std::cin >> word; words.push_back(word); } char letter; // символ для фильтрации слов std::cout << "Введите символ: "; std::cin >> letter; std::vector<std::string> filteredWords; // вектор для хранения отфильтрованных слов for (const auto& word : words) { if (word[0] == letter) { filteredWords.push_back(word); // добавляем слово, если оно начинается на заданный символ } } std::sort(filteredWords.begin(), filteredWords.end(), [](const std::string& s1, const std::string& s2) { return s1.length() < s2.length(); // сортируем по длине слова }); // выводим отсортированные слова std::cout << "Отсортированные слова: " << std::endl; for (const auto& word : filteredWords) { std::cout << word << std::endl; } return 0; }
В данном примере мы сначала заполняем вектор words
входными словами, затем запрашиваем у пользователя символ для фильтрации. Далее мы создаем вектор filteredWords
, в который добавляем только те слова, которые начинаются на заданный символ. После этого мы сортируем вектор filteredWords
по длине слова с использованием лямбда-выражения в качестве компаратора и выводим отсортированные слова на экран.
Таким образом, данный код решает задачу фильтрации и сортировки слов по длине для заданного символа в языке программирования C++.