Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Akane

Сортировка элементов списка, стоящих на четных позици. Не работает функция добавления элементов в конец списка

12.11.2014, 19:32. Показов 1178. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Задача: отсортировать по возрастанию элементы списка, стоящие на четных позициях, т.е. 2-ой, 4-ый, 6-ой и т.д. элементы отсортировать между собой, остальные не трогать.

После заполнения списка, я вытаскиваю элементы стоящие на четных местах в отдельный массив, там их сортирую, а потом заменяю в первоначальном списке элементы, стоящие на четных местах, на отсортированные элементы массива.

Но у меня программа вылетает уже на заполнении списка. Как не исправляла, ничего не выходит. Помогите, пожалуйста. И подскажите, если есть еще ошибки.

C++ (Qt)
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <iostream.h>
#include <conio.h>
#include <ctime>
#pragma argsused
 
using namespace std;
 
struct List
{
        int info;
        List* next;
};
 
void AddInList(List* &tail, int A);
void SortArray (int a[], int n);
void PrintList(List* head);
 
 
 
main ()
{       int N, B;
        List* S;
        S = NULL;
        cout << "Vvedite kolichestvo elementov. N=";
        cin >> N; //Ввод размерности списка
        int *ArrS = new int [N/2]; //Создание массива размером в половину списка, для элементов списка, стоящих на четном месте
        for (int j = 1; j <= N; j++) //Заполнение списка
        {
                cin >> B;
                AddInList(S, B);
        }
        int i = 0;
        List* t = S;
        while (t && t->next) //Запись в массив элементов списка, стоящих на четном месте
        {
                t = t->next;
                ArrS[i++] = t->info;
                t = t->next;
        }
        PrintList(S);
        SortArray(ArrS, N/2); //Сортировка полученного массива по возрастанию
        while (i<N/2) //Замена элементов списка, стоящих на четном месте, на элементы отсортированного массива
        {
                S -> next -> info = ArrS[i++];
                S = S -> next -> next;
        }
        PrintList(S); //Печать списка с отсортированными по возрастанию элементами, стоящими на четном месте
        getch ();
}
 
void AddInList(List* &tail, int A)
{
        List* t = new List;
        t->info = A;
        t->next = NULL;
        tail->next = t; // <---------------- Здесь что-то не так
        tail = t;
}
 
void SortArray (int a[], int n)
{
  for (int i = 0; i < n-1; i++)
    for (int j = 0; j < n-i-1; j++)
      if (a[j] > a[j+1])
      {
        int tmp = a[j];
        a[j] = a[j + 1];
        a[j + 1] = tmp;
      }
}
 
void PrintList(List* head)
{
        List* curr = head->next;
        cout << endl;
        while (curr != NULL)
        {
                cout << ' ' << curr->info << ' ';
                curr = curr->next;
        }
}
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.11.2014, 19:32
Ответы с готовыми решениями:

Создание списка, печать списка на экран, добавления элемента в начало списка, конец списка
Построить динамическую структуру типа список . Необходимо реализовать следующие процедуры: 1. создание списка. 2. печать списка на...

Перенос четных элементов в конец списка
Нужно перенести в конец списка все четные элементы. Я разобралась как выводить по отдельности четные и не четные элементы. Как объединить...

Функция добавления элемента в конец списка
как выглядит функция добавления элемента в конец списка, например в питоне это реализуется с помощью функции append, а как на c++ пока не...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.11.2014, 19:32
Помогаю со студенческими работами здесь

Функция добавления элемента в конец списка
Есть ли в java похожая функция добавления элемента в конец списка, как на питоне - append? k = for i in range(5): k.append(i)

Функция, возвращающая список состоящий из элементов данного списка + n последних элементов списка
определить функцию принимающую в качестве параметров список символов и число и возвращающую в качестве результата конкатенцию исходного...

Сортировка только четных элементов списка
Доброго всем времени суток!!! Вопросик собс-но вот в чем - как отсортировать только четные элементы списка, не напрягая остальные? ...

Почему не работает процедура добавления в конец списка
{Добавление элемента в конец однонаправленного списка. } procedure WE(var aPList : PoleSv; const aData : real); var PElem, PEnd :...

Добавить заданное число в конец списка и найти количество элементов нового списка
Здравствуйте! помогите пожалуйста найти ошибку.... Задача: добавить заданное число в конец списка и найти количество элементов нового...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru