Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2013, 02:18   #1
preanik
Новичок
Джуниор
 
Регистрация: 12.05.2013
Сообщений: 1
По умолчанию Сортировка char в двусвязном списке

Добрый вечер! Облазил ни один форум..пробовал исправлять с разных примеров, а результат небольшой..не сортируется мой двусвязный список полностью. Помогите пожалуйста, кто может. Вот фрагмент программы..функция сортировки:

Требуется отсортировать по полю disk.year.
Код:
struct List *SortByYear()
{
    struct List *tmp;
    struct List *a;
    int flag=1;
    int k=0;
    now=head;
    if (now == NULL){ // Если список пуст - выводим сообщение
            printf("\n\n    - Список пуст\n");
            printf("Нажмите любую клавишу..");
            getch();
            return 1;
        }else{
            while(flag==1)
            {
                tmp=now;
                a=tmp->next;
                flag=0;
                while(a)
                {
                    if((tmp->disk.year)>(a->disk.year))
                    {
                        int temp=tmp->disk.year;
                        tmp->disk.year=a->disk.year;
                        a->disk.year=temp;
 
                        int temp2=tmp->disk.duration;
                        tmp->disk.duration=a->disk.duration;
                        a->disk.duration=temp2;
 
                        
                        char n[LENGTH];
                        strcpy(tmp->disk.artist,n);
                        strcpy(tmp->disk.artist,a->disk.artist);
                        strcpy(a->disk.artist,n);
 
 
                        flag=1;
                    }
                    tmp=tmp->next;
                    a=a->next;
                }
            }
    }
        printf("\n  -->Сортировка произведена. Нажмите любую клавишу..");
        getch();
}
Поля disk.year и disk.duration сортируются. А поле типа char disk.name ни в какую не хочет..сортируются только первые 5 элементов.
preanik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сортировка CHAR как INT --Egor-- SQL, базы данных 3 05.08.2012 10:32
Сортировка в списке Uroboros Помощь студентам 17 18.01.2011 22:04
В двусвязном списке продублировать те элементы, которые меньше следующего, но больше больше предыдущего. gvenog Помощь студентам 0 13.12.2010 21:20
Сортировка массива char по алфавиту iHikita Помощь студентам 1 25.05.2010 13:10