Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream> //подключение библиотеки для команд ввода и вывода текста
- #include <string> //подключение библиотеки для использования переменных типа строка
- #include <windows.h> // подключения библиотеки для русского языка
- #include <cstdlib> // Подключение библиотеки для изменения темы консоли
- #include <time.h> // Подключение библиотеки для генерации случайных чисел
- using namespace std;
- int main() { // главная функция, с неё начинается выполнение программы
- system("color F0"); // смена заднего цвета консоли на белый и цвета текста на чёрный
- SetConsoleOutputCP(1251); //устанавливает кодировку вывода на консоль
- SetConsoleCP(1251); // устанавливает кодировку ввода из консолиsrand(time(NULL)); // команда для работы генератора случайных чисел
- int a = 0, max = 0, lex = 0, l = 0, r = 0, element = 200;
- /* инициализируются переменные,а-счётчик,max-длина проверяемого слова для сравнения с длиной максимального,
- lex-длина самого длинного слова,l-позиция 1 буквы проверяемого слова,
- r-счётчик,element-изначальная длина текста*/
- string max_word, kek; // инициализация переменных max_word для записи туда самого длинного слова,kek-текст
- for (int a = 0; a < 200; a++) { // цикл заполнения текстом переменную kek
- kek += rand() % 25 + 65; //в кек вписываются случайные буквы английского алфавита
- if (rand() % 25 < 6) { // цикл для добавления пробелов между словами, уменьшая число 10 мы уменьшаем частоту встречи пробелов
- kek += 32; //добавление пробела перед буквой
- element++; // увеличение длины текста на 1
- }
- }
- for (a; a < element; a++) { // цикл для нахождения самого длинного слова
- while (a < element && int(kek.at(a)) != 32) { // цикл работает пока не закончится текст и пока не найдётся пробел
- max++; // увеличение длины проверяемого слова на 1
- a++; // увеличение счётчика
- }
- if (max == lex) { // если длина проверяемого слова равна длине максимального слова,то они оба выведутся
- r = 1;//r работает условия для вывода
- l = a - max; //вычисление позиции 1 буквы слова
- max_word += " и "; // добавление строки для удобства
- while (a > l) { // запись слова в переменную max_word
- max_word += kek.at(l); // запись слова посимвольно
- l++; // следующий символ
- }
- }
- if (max > lex) { // смена максимального
- r = 0; // слово 1 ,а не несколько
- l = a - max;//вычисление позиции 1 буквы слова
- lex = max; // lex присваивается длина рассматриваемого слова
- max_word = ""; // стирается предыдущее слово
- while (a > l) { // запись слова в переменную max_word
- max_word += kek.at(l); // запись слова посимвольно
- l++; // следующий символ
- }
- }
- max = 0; // счётчик длины зануляется
- }
- cout << kek << endl; // вывод текста
- if (r == 1) { // проверяется условия нескольких слов
- cout << "Самые длинные слова-" << max_word << " Их длина-" << lex << endl; // вывод текстов
- }
- else // если слово 1
- cout << "Самое длинное слово-" << max_word << " Его длина-" <<lex << endl; // вывод текстов
- system("pause"); //остановка для просмотра программы
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement