![]() |
|
Модераторы: bsa |
![]()
|
|
| Gwynbleiddd |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 25.3.2008 Репутация: нет Всего: нет |
Привет.
Есть задачка на Си: Написать подпрограмму сохранения имён в таблице имён. Использовать для убыстрения поиска хэширование имён, причём хэш код равен остатку от деления суммы символов имени на число 211. Таблицу имён представить в виде массива структур: struct s{char*name/*имя*/; char *defn/*замещающий текст*/; struct s *next/*указатель на следующий элемент*/;} Есть вроде как почти готовая эта прога. Код на Си
В ней ввод имён осуществлён через цикл до 4, т.к. не было особого времени делать нормальные условия - прога вообще не работала. Функиця install (s,t) записывает имя s и замещающий его текст t в таблицу, s и t - стринги. Обращается к lookup, чтобы определить, есть ли в наличии вставляемый стринг. Если есть, то старое определение заменяется новым. Или будет образован новый элемент. lookup (s) ищет в таблице имя s и возвращает указатель на место, где имя s было найдено, или NULL, есди его не оказалось. hash (s) считает хэш-код имени. Не смог сделать, чтобы на экран выводилось имя и текст, его замещающий, которое мы ищем с помощью lookup. Помогите пожалуйста доделать эту программу до нормального рабочего состояния |
|||
|
||||
| AntonX |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 1.2.2006 Где: РФ Репутация: нет Всего: -1 |
printf ("%s", &name); - либо мусор остался, либо это что-то не работает.
все нормально печатает. или ты как-то по другому хотел. Объясни. |
||||
|
|||||
| Gwynbleiddd |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 25.3.2008 Репутация: нет Всего: нет |
Чего хочу:
когда пользователь заканчивает заполнение таблицы он может обратиться к функции поиска имени (lookup). Он вводит искомое имя, а на экран выводится результат - найденное имя и соответствущий ему текст.
Попробовал через printf ("%s", &(np->name));, но всё равно ничего не выводит. Кстати, а как преобразовать char *name в char *name[10]? А то пишешь имя 1234 например, а в таблицу сохраняется 1. |
|||
|
||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 9 Всего: 14 |
OMG опять.... |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |