![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
ioManip |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 12.8.2011 Где: Благовещенск Репутация: нет Всего: нет |
Привет!
![]() Алгоритм:
Применение:
--------------------
Мечты не работают, пока ты не работаешь! |
||||
|
|||||
rudolfninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 341 Регистрация: 19.2.2013 Где: г. Минск Репутация: 1 Всего: 6 |
А почему бы не использовать strcmp для сравнения, а не приводить все к int?
|
|||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Алгоритм не так.
Посмотрите, пожалуйста, внимательно диапазон изменения переменных этих двух циклов. И не допускайте малейшей возможности выхода за пределы массива. -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
ioManip |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 12.8.2011 Где: Благовещенск Репутация: нет Всего: нет |
feodorv,
rudolfninja, Попробыл! Исправил! Но все равно не получается. Даже, елс ивот так делать
Дело в том, что мне кажется я не правильно данные передаю, потому что при выводе всегда последняя введенная фамилия выводится. Вообщем вот:(если кратко, то) Заполнение фамилий
Сортировка
Присоединённый файл ( Кол-во скачиваний: 4 ) ![]() --------------------
Мечты не работают, пока ты не работаешь! |
||||||
|
|||||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Вы вместо того, что бы сортировать пациентов в массиве patients (по их полю _surnam), сортуруете само поле _surnam (строку в нем), причем неправильно, т.к. для определения размера используется не строка (которую вы пытаетесь сортировать), а количество пациентов, которое никакого отношения к строке не имеет.
|
|||
|
||||
ioManip |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 12.8.2011 Где: Благовещенск Репутация: нет Всего: нет |
Ага, т.е. Мне нужно массив патиентс передавать. Так,а как это сделать, ведь там получается массив объектов, как передать именно поле с фамилией?
--------------------
Мечты не работают, пока ты не работаешь! |
|||
|
||||
ioManip |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 12.8.2011 Где: Благовещенск Репутация: нет Всего: нет |
Вообщем думал, думал...и пришел к этому.
Сортировка:
Передача в метод:
Но в сортировке, есть ошибка, компилятор ругается на переменную temp типа char. Я думаю она должна быть типа PatientInfo, но не представляю как это сделать. Вот мои мысли ![]() Это сообщение отредактировал(а) ioManip - 18.2.2014, 02:11 Присоединённый файл ( Кол-во скачиваний: 3 ) ![]() --------------------
Мечты не работают, пока ты не работаешь! |
||||
|
|||||
feodorv |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Как-то Вы хитро хотите строки сравнивать. Ведь тип у _patients - аж string **!!! Вот Ваши мысли: Так чего же Вы делаете-то?
Что Вы здесь сортируете? Ну разве так трудно написать
Только при этом getSurname() должен возвращать ссылку на string, а не неизвестно что... Это сообщение отредактировал(а) feodorv - 18.2.2014, 05:56 -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||
|
|||||
ioManip |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 12.8.2011 Где: Благовещенск Репутация: нет Всего: нет |
Не получается! Ничего не происходит!
![]() Вот get - метод:
Вот переписал сортировку:
--------------------
Мечты не работают, пока ты не работаешь! |
||||
|
|||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
||||
|
||||
feodorv |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Как минимум:
А то Вы каждый раз создаёте по новому экземпляру класса string.
Да, swap нужен для указателей на пациентов, а не для их имён... -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||
|
|||||
ioManip |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 12.8.2011 Где: Благовещенск Репутация: нет Всего: нет |
Оно?
Только так, тоже не выходит --------------------
Мечты не работают, пока ты не работаешь! |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
||||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Точка с запятой здесь зачем??? Присоединяюсь))) -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
||||
|
||||
akizelokro |
|
|||
![]() Крокодил ![]() ![]() Профиль Группа: Участник Сообщений: 761 Регистрация: 30.7.2007 Репутация: 1 Всего: 5 |
А кто вообще такие переменные в функцию передаёт?
И кто вообще такие комментарии пишет? Плюнь на этих кадров, cсделай эту перестановку жёстче, и всё пройдёт Это сообщение отредактировал(а) akizelokro - 23.2.2014, 00:18 -------------------- a = a + b; b = a - b; a = a - b; |
|||
|
||||
ioManip |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 12.8.2011 Где: Благовещенск Репутация: нет Всего: нет |
Убрал точку с запятой, но все равно нет....
![]() main.cpp
PatientInfo.cpp
PatientInfo.h
Это сообщение отредактировал(а) ioManip - 23.2.2014, 05:37 --------------------
Мечты не работают, пока ты не работаешь! |
||||||
|
|||||||
feodorv |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Зачем в DisplayHosPatient вставлена сортировка клиентов? А ведь в DispalyNotHosPatient() этой сортировки нет. Зачем сортировать весь список при печати одного клиента? Зачем для сортировки там проверка на У Вас ведь задача какая:
Ну вот и подскажите, пожалуйста, почему в DispalyNotHosPatient() такой вывод:
-------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||
|
|||||
ioManip |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 12.8.2011 Где: Благовещенск Репутация: нет Всего: нет |
Изначально задача такая была: По требованию пользователя организовать 1. Вывод на экран списка госпитализированных пациентов в алфавитном порядке (DisplayHosPatient) 2. Список негоспитализированных пациентов с указанием домашнего адреса (DisplayNotHosPatient) 3. Список детей с указанием диагноза. (DisplayHosChildren) Т.е. да, задача такая, но только это часть из того, что нужно сделать. Как раз с алфавитным выводом у меня проблемы, поэтому к вам и обратился! --------------------
Мечты не работают, пока ты не работаешь! |
|||
|
||||
ioManip |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 12.8.2011 Где: Благовещенск Репутация: нет Всего: нет |
Победа!
![]() Вообщем сидел, сидел, дай думаю индексы поменяю( j на i ) и ооо чудо!! Все получилось! ![]()
Всем спасибо! ![]() --------------------
Мечты не работают, пока ты не работаешь! |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Не получится у вас чуда - введите штук 5 пациентов, с фамилиями строго в обратном алфавитном порядке
![]() |
|||
|
||||
ioManip |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 12.8.2011 Где: Благовещенск Репутация: нет Всего: нет |
xvr, Да, Вы правы! :(
--------------------
Мечты не работают, пока ты не работаешь! |
|||
|
||||
ioManip |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 12.8.2011 Где: Благовещенск Репутация: нет Всего: нет |
Оххх....уже столько вожусь с этой сортировкой!!!
![]() ![]() Ну вообщем, поробовал я запустить эту программу при помощи отладчика, на этапе вывода отсортированных фамилий, отладчик мне выдает: "Сигнал перехвачен - SIGSEGV" , погуглив, узнал, что SIGSEGV - это в POSIX-системах сигнал, посылаемый процессу при попытке обращения к несуществующей памяти или обращения с нарушением прав доступа. При этом у меня открывается файл basig_string.h и открывается на строчкке с таким содержанием
У меня 3 вопроса: у меня не работает, потому что linux ? Или я действительно обращаюсь к несуществующей памяти? Или я уже не в те дебри полез? --------------------
Мечты не работают, пока ты не работаешь! |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Linux тут не при чем, а памяти действительно нет. Судя по всему у вас сломалось на сравнении строк (стр 12), из за выхода за пределы массива. Вам feodorv совершенно правильно заметил, что сортировка не должна быть внутри PatientInfo, она должна быть снаружи и вызываться 1 раз, а не на каждого пациента |
|||
|
||||
ioManip |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 12.8.2011 Где: Благовещенск Репутация: нет Всего: нет |
Ну вот смотрите! Теперь сортировка в main.
main.cpp
DisplayHosPatient()
Т.е. идет заполнение массива клиентами, затем сортировка, затем уже отсортированный массив передается в DisplayHosPatient, а там уже по условию infoHos производится вывод результата....ну разве не так??!! Но только все равно крашится! :( --------------------
Мечты не работают, пока ты не работаешь! |
||||
|
|||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Гм. По ссылке, что я Вам дал, опечатка: Хотя, быть может, имелось в виду:
В любом случае правильный вариант здесь ![]() Это сообщение отредактировал(а) feodorv - 28.2.2014, 17:36 -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
||||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
-------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
ioManip |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 12.8.2011 Где: Благовещенск Репутация: нет Всего: нет |
Слушайте! Скорей всего именно это и имелось в виду! Все заработало! ![]() Уххх, спасибо, всем! ![]() Хороший форум! --------------------
Мечты не работают, пока ты не работаешь! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |