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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kirich iz Che
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 25
#1

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

08.07.2010, 11:48. Просмотров 382. Ответов 2
Метки нет (Все метки)

есть структура и класс, ее нужно попровить (или написать свою работающую) функцию сортировки
все это реализуется с помощью линейного двунаправленного списка
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++
Дано натуральное число N (n от 1 до 100), целочисленный линейный массив a0, a1, …, aN-1. Элементы массива заполняются случайными целыми...

Сортировка массива. Прошу найти ошибку - C++
Дано N цисло (1&lt;=N&lt;=100). Нужно отсортировать. Прошу найти ошибку #include &lt;iostream&gt; #include &lt;iomanip&gt; using namespace std; ...

Блочная сортировка массива (найти ошибку) - C++
Вобщем задача следующая: реализовать алгоритм блочной сортировки массива! Собственно реализовать - реализовал! =) когда количество...

Быстрая сортировка. Не могу найти ошибку!. - C++
Написала вот такую программу, которая создает массив из случайных чилел, потом их сортирует. Работаю под Visual Studio 2010. #include...

Сортировка массива пузырьком - найти ошибку в коде - C++
В массив вношу 46 случайных чисел от 1 до 26 включая, упорядочиваю по убыванию сортировкой методом пузырька - выдает ошибку сам код вот ...

Сортировка методом пузырька, не могу найти ошибку - C++
Здравствуйте, уважаемые форумчане ! Столкнулся с проблемой при выполнении 2-го условия. Дана целочисленная прямоугольная матрица...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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
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м проходе. как это поять, и исправить
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2010, 12:48
Привет! Вот еще темы с ответами:

Сортировка массива после первого отрицательного, найти ошибку. - C++
программа должна отсортировать массив после первого отрицательного. попробовал пузырьковую сортировку, алгоритм правильный но что то она...

Найти ошибку в программе: в visual studio выдает ошибку - C++
#include &lt;math.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; using namespace std; int main() { double x, E, ypred, y, S; ...

Пузырьковая сортировка выкидывает ошибку... - C++
Выкидывает вот такую ошибку - Run-Time Check Failure #3 - The variable 't' is being used without being initialized. Что я не так сделал?...

Сортировка массивов по нескольким параметрам. Исправить ошибку в коде - C++
Здравствуйте. Нужна помощь. Моя задача: задан массив, содержащий сведения о металлах. Для каждого материала указаны: название, плотность,...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru