![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Exister |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 4.12.2006 Репутация: нет Всего: нет |
Чтоб не создавать 2 темы задам оба вопроса тут:
1)есть однонаправленная списковая структура с 3 полями
нужно упорядочить ее по dan.tovar т.е. по названию получается написал вот такой код, компилятор ошибок не выдает,но при запусе этой ф-ции прога вылетает, пишет память не может быть "read". Кто видит ошибку?
2)Нужно проверять не истек ли срок годности товара т.е. для товара вводятся дата поступления и срок годности и сравнить эт с сегодняшней датой. Как это сделать? Буду очень благодарен за помощь, а то сдача курсовой на носу, а я с этим застопорился. |
||||
|
|||||
| JAnty |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 6.12.2004 Где: Москва Репутация: 1 Всего: 2 |
Есть подозрения на бесконечность цикла, next меняут значение??? И потом:
Ищи ошибку сообщениями: int _tmp_; printf("%d",_tmp_); тоесть:
Это сообщение отредактировал(а) JAnty - 9.4.2007, 14:36 -------------------- |
||||
|
|||||
| The Thing |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 286 Регистрация: 6.9.2004 Репутация: нет Всего: 3 |
Сравнивай текущую дату с указанной датой
Это сообщение отредактировал(а) The Thing - 9.4.2007, 14:47 -------------------- Правильность работы программы зависит от двух велечин. В нужном месте должны стоять нолик и еденичка. |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Где гарантия что в
ref_kg->next не равно NULL; -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| The Thing |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 286 Регистрация: 6.9.2004 Репутация: нет Всего: 3 |
Переписал на Си... но не проверял. Потыкай ее.. помоему я уже находил в ней какую-то ошибку в последних двух условиях...
Добавлено через 4 минуты и 19 секунд На счет первого вопроса: у тебя как-то неаккуратно написан код (на мой взгляд..) - разбираться даже не хочется. Лучше всего возьми базу из 2-4 элементов и проверь в режиме отладки. Сам все найдешь... Добавлено через 7 минут и 32 секунды
Нет, а она и не нужна... неужели не может быть строки нулевой длины? если вторая часть отлична от нулуля, то выдаст != 0 -------------------- Правильность работы программы зависит от двух велечин. В нужном месте должны стоять нолик и еденичка. |
||||||
|
|||||||
| Exister |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 4.12.2006 Репутация: нет Всего: нет |
добавил сообщения, выходит что
выполняется 1 раз т.е. после первого выполнения IF сразу вылетает. |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Ээ. Вы поняли, что Вы написали? При входе в цикл мы знаем что ref_kg не равно NULL Но никто не гаранитирует, что ref_kg - последний в списке и ref_kg->next == NULL. А мы пытаемся получить ref_kg->next->dan.tovar. То есть NULL->dan.tovar. Что при такой попытке мы получим -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| Exister |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 4.12.2006 Репутация: нет Всего: нет |
The Thing, большое спасибо за подсказку с датами, все отлично работает.
Осталось только упорядочить. Кто-нибудь может с этим помочь? |
|||
|
||||
| Arks |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 197 Регистрация: 7.5.2006 Где: Барнаул Репутация: нет Всего: нет |
1) Что такое ref_kg - лучше бы её локальной сделать. Иначе можешь где-нибудь испортить и потом долго думать из-за чего так странно прога себя ведет.
2) Проверь правильно ли строится список 3) if(ref_kg->next && strcmp(ref_kg->dan.tovar, ref_kg->next->dan.tovar)<0) либо if(ref_kg!=NULL) for(ref_kg=head_kg; ref_kg->next!=NULL; ref_kg=ref_kg->next) |
|||
|
||||
| The Thing |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 286 Регистрация: 6.9.2004 Репутация: нет Всего: 3 |
А, в этом смысле.. Да. Я полностью солидарен. Я думал имелось ввиду про strcmp, где вместо строки будет послан NULL. (плохо посмотрел код) Извиняюсь Добавлено через 4 минуты и 7 секунд кстати, скорее всего именно в этом и есть ошибка! возможно следует исправить строку
на что-нибудь вроде этого:
возможно не совсем корректно.. сильно не вдавался в смысл написанного, но идея думаю понятна -------------------- Правильность работы программы зависит от двух велечин. В нужном месте должны стоять нолик и еденичка. |
||||
|
|||||
| Exister |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 4.12.2006 Репутация: нет Всего: нет |
Всем спасибо за помощь, все сделал, все работает!
|
|||
|
||||
| Arks |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 197 Регистрация: 7.5.2006 Где: Барнаул Репутация: нет Всего: нет |
Пометь вопрос как решённый.
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |