![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
Bony |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 16.12.2005 Где: Новосибирск Репутация: нет Всего: нет |
Задача:
Найти самое длинное общее слово двух заданных предложений. Язык Си, просто Си. |
|||
|
||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 2 Всего: 20 |
Что типа этого, писал быстро поэтому 1. Коряво сделал добывание слова из предложения в функции readword - возможен выход за границы массива. 2. Не сделал пару проверок. Но алгоритм вроде верный. ЗЫ + не проверял. Добавлено @ 15:40 Короче скорее всего код выше бред, но алгоритм таков. Выбирай одно слово из первого предложения, далее перебирай все выбранные слова из второго предложения, пока не найдешь такое же или не подойдешь к концу второго предложения, если найдешь похожее слово, то получай его длину, сравнивай с имеющимся рекордом и если оно выше рекорда записывай слово в буффер, который затем в конце работы будешь показывать. Далее выбирай следующее слово из первого предложения, опять прокатывайся по второму и так далее пока не достигнешь конца первого. Это сообщение отредактировал(а) En_t_end - 16.12.2005, 16:00 |
|||
|
||||
Bony |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 16.12.2005 Где: Новосибирск Репутация: нет Всего: нет |
Спасибо. С алгорится я все понял!
Если не затруднит можно код, ну если нет так нет Еще раз спасибо |
|||
|
||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 2 Всего: 20 |
Bony
В моем коде нужно только исправить функцию readword, я точно не помню, но по-моему есть такая стандартная функция - умеет выдирать совокупность символов от и до определенного символа в нашем случае - это 32 символ, также нужно срезать запятые и точки + знаки восклицания и всевозможные символы, для этого достаточно просто воспользоваться функцией(станд.) для узнавания является ли данный символ буквой. |
|||
|
||||
Bony |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 16.12.2005 Где: Новосибирск Репутация: нет Всего: нет |
А для простого Си этот код потянет!!!
|
|||
|
||||
Bony |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 16.12.2005 Где: Новосибирск Репутация: нет Всего: нет |
Есть несколько вопросов:
1. что делает и эта библиотечная функция strlen(Str)) 2. buffer[i++] - это как? |
|||
|
||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 2 Всего: 20 |
buffer[i++] - возвращает элемент с индексом i и после этого увеличивает i на единицу.
strlen возвращает длину строки оканчивающуюся нуль-терминатором, причем не включая его в возвращаемое значение. |
|||
|
||||
Bony |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 16.12.2005 Где: Новосибирск Репутация: нет Всего: нет |
En_t_end чет не пашет, ошибок много!!!
|
|||
|
||||
Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 50 Всего: 88 |
Для простоты считаем, что:
2.Регистр символов не учитываем, хотя можем сделать и это. 3.Количество слов в предложении - не больше 20, хотя можем увеличить.
-------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
Bony |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 16.12.2005 Где: Новосибирск Репутация: нет Всего: нет |
Dov Спасибо огромное!!! Как мне благодорить тебя???
Может конечно я покажесь наглым, но не могу сделать чтоб самому предложения вводить, ошибки появляются (наверно потому что не сам код писал)! И можно ли как нибудь на подпрограммы разбить??? Но как бы там ни было еще раз спасибо, спас мою шкуры!!! ![]() Это сообщение отредактировал(а) Bony - 21.12.2005, 18:24 |
|||
|
||||
noBony |
|
|||
Unregistered |
Встречный вопрос : 1. Что такое ЯЗЫК ПРОГРАММИРОВАИЯ ??? 2. А С/С++ ??? После ответа на эти вопросы (только честно) оба твоих отпадают сразу . |
|||
|
||||
Dov |
|
||||||||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 50 Всего: 88 |
Вот исправленная версия:
![]()
Что, конкретно, тебя интересует? -------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
||||||||
|
|||||||||
noBony |
|
|||
Unregistered |
for Dov
а почему инкремент ( вначале проги ? ) к чему лишние напряги (читай - лишние такты). Почему не указать индекс явно ??? |
|||
|
||||
Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 50 Всего: 88 |
noBony, если есть что-нибудь умное сказать - скажи, а оффтопить мы и сами умеем. Вот человеку подпрограммы нужны, например. Помоги. -------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
noBony |
|
|||
Unregistered |
Я не понял суть задачи :
если слово общее - значит это одно и тоже слово. Как они могут иметь разную длинну ??? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |