Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задание на Си для универа, очень нужно

Sasha Helium Ученик (182), закрыт 3 года назад
Если знаете как сделать, помогите пожалуйста!
Задание:
Реализовать утилиту, которая форматирует ширину абзацев текста, подающегося на стандартный ввод, по ширине и подает отформатированный текст на стандартный вывод. Ширина строк отформатированного текста в символах задается в параметрах вызова утилиты с помощью ключа -k. Если ключ не задан, используется значение по умолчанию – 50.

Требования:
– во всех строках абзаца, кроме последней, должно быть ровно указанное количество символов;
– слова переноситься не должны;
– во всех строках абзаца, кроме последней, промежутки между словами должны дополняться необходимым количеством пробелов таким образом, чтобы слова получались равномерно распределены по строке.

Тестироваться будет на файле .txt
Лучший ответ
Чайкин Виталий Мыслитель (7584) 3 года назад
1. получить строку
2. сформировать массив слов из строки
3. определить сколько места надо заполнить пробелами (50 - Длина слов)
4. рассчитать пропорциональный промежуток между словами (ЗаполнитьПробелами/(квоСлов-1)
5. рассчитать остаток = 50 - ( (квоСлов-1)*ПропорциональныйПромежуток
6. началоМассива = 0; конецМассива = ДлинаМассиваСлов;
Пока Остаток<>0 Цикл
Если Четное (Остаток) тогда
// СловуВКонцеМассива прибавить пробел спереди
конецМассива = конецМассива - 1
Иначе
// СловуВНачалеМассива прибавить пробел сзади
началоМассива = началоМассива + 1
Остаток = Остаток - 1
КонецЦикла
7. Каждому слову добавить пропорциональный промежуток справа (кроме последнего)
8. Вывести все слова из массива
Остальные ответы
Andrey Grachev Профи (502) 3 года назад
Передача параметров
https://younglinux.info/c/argc-argv

В цикле пройтись по введенному тексту и поставить '\n' заместо пробела где нужно.
Похожие вопросы