Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сложная сортировка, только чистый С 
:(
    Опции темы
Diesel Draft
Дата 14.5.2006, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 876
Регистрация: 18.1.2005
Где: Lviv, Ukraine

Репутация: -1
Всего: 5



нужно написать программу которая будет сортировать массив структур. Но надо сортировать в пределах одного параметра.

Код

struct stStudent{
 char *grupa[6];
 char *last_name[8];
};


Входниэ даные 

grupa + last_name
--------+--------------
g1      +     n1
g2      +     n2
g3      +     n3
g4      +     n4
g2      +     n5
g2      +     n6
g1      +     n7

Выходные данные

grupa + last_name
--------+--------------
g1      +     n1
g1      +     n7
g2      +     n2
g2      +     n5
g2      +     n6
g3      +     n3
g4      +     n4

По суте нужно отсортировать два раза. Но как организовать его экономно. Может есть какие то предложения?

Припустим у меня уже єсть масив ar[] елементов типа stStudent. Количество елементов int iN. Масив заповнен полный данымы

Все ето надо делать на чистом С

 
  

Это сообщение отредактировал(а) Diesel Draft - 14.5.2006, 18:42


--------------------
НЕДОМА в маси 
PM MAIL WWW ICQ GTalk   Вверх
MAKCim
Дата 14.5.2006, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



ты уверен что у тебя массивы строк?
Цитата

Код

char *grupa[6];
char *last_name[8];


воспользуйся qsort
c таким comparer-ом
Код

int compare(const void* ptr_a, const void* ptr_b)
{
    stStudent* st_a=(stStudent*) ptr_a,
        *st_b=(stStudent*) ptr_b;
    if (<объект st_a "меньше" объекта st_b>)
        return -1;
   else if (<объект st_a "равен" объекту st_b>)
        return 0;
    return 1;
}

int main()
{
    stStudent array[20];
    qsort(array,20,sizeof(stStudent),&compare);
    return 0;
}
 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Diesel Draft
Дата 14.5.2006, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 876
Регистрация: 18.1.2005
Где: Lviv, Ukraine

Репутация: -1
Всего: 5



Хорошо, а как быть дале. Мне нужно отсортовать для каждой групи отдельно?
Или мне сперва отсортовать групи, знайти конець и початок, а потом уже сортувать даные? 


--------------------
НЕДОМА в маси 
PM MAIL WWW ICQ GTalk   Вверх
bsa
Дата 14.5.2006, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Diesel Draft, пиши по-русски, plz. Пока еще все понятно, но... ;)
А ты так функцию compare напиши, чтобы она учитывала группу (это в случае, если основной объект сравнения равен, то надо сравнить дополнительный). 
PM   Вверх
Diesel Draft
Дата 14.5.2006, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 876
Регистрация: 18.1.2005
Где: Lviv, Ukraine

Репутация: -1
Всего: 5



извини за плохой русскый, спасибо парни
буду пробувать 

Это сообщение отредактировал(а) Diesel Draft - 14.5.2006, 22:35


--------------------
НЕДОМА в маси 
PM MAIL WWW ICQ GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1100 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.