Предлагаю такие примерные алгоритмы решения
По первой задаче: есть по крайней мере два пути решения - 1) каждое слово текста обрабатывать как элемент массива, соответственно, массив отсортировать по возрастанию длины и слова с максимальной длиной выстраивать в нужном порядке; 2) во внешний файл вывести по отдельности каждое слово текста, потом его отсортировать и применить алгоритм выстраивания цепочки.
По второй задаче: заводится 2 текстовых массива, каждый заполняется словами из соответствующих текстов, причем параллельно проводится анализ совпадений текущего слова с уже внесенными в массив. Затем массивы последовательно сравниваются и в промежуточную переменную выводится самое длинное из общих слов на каждой итерации сравнения. По окончании сравнения значение промежуточной переменной выводится как результат.