![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 24.11.2021
Сообщений: 37
|
![]()
Дан текст.
а) Сократить количество пропусков между словами данного предложения к одному. б) Заменить регистр букв последнего слова на противоположный. в) Найти в тексте порядковый номер самого длинного слова. язык Си кто то может подсказать как делать? я сам не понимаю, а лабу нужно сдать завтра. буду очень благодарен |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 24.11.2021
Сообщений: 37
|
![]()
я нашел как выполнить пункт а, но не знаю как выполнять остальные
Код:
|
![]() |
![]() |
![]() |
#3 | ||
Старожил
Регистрация: 23.10.2010
Сообщений: 2,371
|
![]() Цитата:
Цитата:
Как - Алгоритм: 1. Принимаем строку. Описываем дополнительную переменную, которая будет индексом, указывающем позицию, в которую копируем символы. а) Просматриваем слева направо по символам и копируем во вспомогательную строку (это как вариант, но можно этого и не делать - это будет другая версия алгоритма). Если пробел, то поднимаем флажок и копируем. Доп. переменную инкрементируем. Если флажок установлен и пробел, то не копируем. Если не пробел, то копируем и флажок сбрасываем. Доп. переменную инкрементируем. б) Если надо оставить в той же строке: Тоже, что и выше, но место копирования - та же строка. 2. Просматриваем строку с хвоста (в цикле типа while simvol != ' '). Тут, между кавычками - пробел. Индекс указывает на последний символ строки. Делаем функцию Upper() над символом и вставляем его в строку. Декрементируем индекс. Если пробел, то цикл завершается. 3. Описываем переменные, например, Slovo (текущий номер слова), maxSlovo, maxcount и count. Инициируем их нулями. Просматриваем строку. Если символ, то count += 1 (инкремент) Если пробел, то: - Slovo += 1; и: cравниваем count с maxcount: - если count больше maxcount, то: maxcount = count; maxSlovo = Slovo; - count обнуляем. Если конец строки, то завершаем обработку и выводим результат. Так думаю, что алгоритмы 1 и 3 можно сделать в одном цикле. PS: В вашем алгоритме предполагается, что слова разделены двумя пробелами. А если их будет 3 или 5?
Как-то так, ...
Последний раз редактировалось ViktorR; 24.11.2021 в 17:59. |
||
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 24.11.2021
Сообщений: 37
|
![]()
я сам язык Си не особо понимаю, я на первом курсе учусь только, и из за дистанта сложновато немного. Можете как то с самим кодом помочь?
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 24.11.2021
Сообщений: 37
|
![]()
ViktorR, можете с самим кодом пожалуйста помочь?
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,708
|
![]()
Может быть, нужна не "помощь с кодом", а помощь в изучении языка? Что, раз дистант, то преподы отгородились железной стеной, и у них спросить нельзя непонятки? Тогда можно в форум с конкретными вопросами по языку.
У меня до сих пор убеждение (может быть, устаревшее уже), что задания даются не "абы штоб было", а для проверки усвоения материала. От того, что добрый дядя на халяву решит двоечнику задачу - в голове не прибавится ни одного байта соображаловки. |
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,371
|
![]() Цитата:
Как-то так, ...
|
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 24.11.2021
Сообщений: 37
|
![]()
digitalis, да я просто по времени не успеваю, мне на завтра сдать уже нужно, а до этого по другим предметам завал был и я не мог этот вопрос подробнее изучить. Поэтому и попросил помощи с кодом тут
|
![]() |
![]() |
![]() |
#9 | |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,708
|
![]()
Сочувствую. Но у меня на компе Си нету, а я привык если уж давать совет, то работающий.
Ну если бы сам написал пункт 1), то никаких трудностей не было бы его модифицировать под другие пункты. Сдул ? ![]() ViktorR - а если там уже верхний регистр? Я смысл задания понял так, что его над перепихнуть в нижний. opsam Алгоритм тебе ViktorR расписал, основа есть (п.1) - то Цитата:
Последний раз редактировалось digitalis; 24.11.2021 в 19:55. |
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 24.11.2021
Сообщений: 37
|
![]()
у меня получилось выполнить и пункт б
может поможете подсказкой с выполнением пункта в? Код:
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Составить на языке Турбо Паскаль программу обработки строк и двумерного массива. | Wenia | Паскаль, Turbo Pascal, PascalABC.NET | 11 | 30.11.2012 09:47 |
Используя инструкции обработки строк написать программу на языке ассемблера IA-32 | StarMoon | Помощь студентам | 0 | 02.05.2012 17:16 |