Форум программистов, компьютерный форум CyberForum.ru

Сортировка, найти ошибку - C++

Восстановить пароль Регистрация
 
kirich iz Che
 Аватар для kirich iz Che
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 25
08.07.2010, 11:48     Сортировка, найти ошибку #1
есть структура и класс, ее нужно попровить (или написать свою работающую) функцию сортировки
все это реализуется с помощью линейного двунаправленного списка
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
struct node
{
    int info;
    struct node *pred;
    struct node *next;
};
class pilot
{node  *begin;
node *p1,*p2;
    public:
        pilot(); //конструктор класса
        ~pilot();//деструктор класса
        int init();
        int add(int vv_data);
        void del(int find);
        node* dostup();
        node* poisk(int find);
        void sort();
        friend ostream& operator << (ostream&, pilot&);
 
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
void pilot ::sort()
{   node *p;
    p=begin;
    if (p!=NULL)
    {
            int cnt=0;
        while (p->next!=NULL)
        {
            cnt++;
            p=p->next;
        }
 
 
        node *p1, *p2;
        p1=new node;
        p2=new node;
        p1=p->next;
        for(int j=0; j<(cnt-1); j++)
        {
        while (p!=NULL)
        {
            if ( (p1->info) < (p->info) )
            {
                p2->info = p1->info;
                p1->info = p->info;
                p->info= p1->info;
            };
        p=p->next;
        p1=p->next;
        }
        };
    }
    getch();
    system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2010, 11:48     Сортировка, найти ошибку
Посмотрите здесь:

C++ сортировка массива(найти ошибку)
C++ Сортировка массива. Прошу найти ошибку
C++ Быстрая сортировка. Не могу найти ошибку!.
C++ Сортировка массива после первого отрицательного, найти ошибку.
C++ Пузырьковая сортировка выкидывает ошибку...
C++ Блочная сортировка массива (найти ошибку)
C++ Сортировка методом пузырька, не могу найти ошибку
C++ Сортировка массива пузырьком - найти ошибку в коде

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
woohoo
7 / 7 / 1
Регистрация: 30.06.2010
Сообщений: 27
08.07.2010, 12:19     Сортировка, найти ошибку #2
kirich iz Che, вот ошибка есть:
C++
1
2
3
                p2->info = p1->info;
                p1->info = p->info;
                p->info= p1->info;
надо
C++
1
2
3
                p2->info = p1->info;
                p1->info = p->info;
                p->info= p2->info;
kirich iz Che
 Аватар для kirich iz Che
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 25
08.07.2010, 12:48  [ТС]     Сортировка, найти ошибку #3
Цитата Сообщение от woohoo Посмотреть сообщение
kirich iz Che, вот ошибка есть:
C++
1
2
3
                p2->info = p1->info;
                p1->info = p->info;
                p->info= p1->info;
надо
C++
1
2
3
                p2->info = p1->info;
                p1->info = p->info;
                p->info= p2->info;
спасибо)
все компилируется, но при запуске ошибка тут
C++
1
if ( (p1->info) < (p->info) )
есть варианты, почему не правильно?

Добавлено через 19 минут
Когда ввожу числа напирмер 4 2 6, то ошибка выходит на 3м проходе. как это поять, и исправить
Yandex
Объявления
08.07.2010, 12:48     Сортировка, найти ошибку
Ответ Создать тему
Опции темы

Текущее время: 12:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru