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

Сортировка списка по алфавиту - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Открытие файла с переменным именем http://www.cyberforum.ru/cpp-beginners/thread1588997.html
Допустим у меня есть массив с именем файла, которое я буду менять. char fname = {examp.txt}; Обычно создают поток так: ofstream file(examp.txt); А как сделать, что бы оно брало имя с моего массива?
C++ Русский язык не работает в OpenGL Код подключения меню на кнопку мыши, там где русское слово при вызове меню пишет ерунду какую-то, а с английскими нормально все, может подключить как-то русский можно? void MenuCheck(int v){ switch (v) { case 0: glutSetWindowTitle("LOLOLO");break; case 1: sapper.restart();break; } } void SubMenuCheck(int v){ http://www.cyberforum.ru/cpp-beginners/thread1588978.html
C++ Заполнить массив, используя указатели
MAYDAY! Нужна помощь по написанию вот такой программы. Дан массив a из n действительных чисел. Используя указатели, заполнить массив B, элементы которого имеют вид : {a0, -a0*a1,a0*a1*a2,...,(-1)^n*a0*a1...an-1}
Ошибка в коде (C++) C++
Не могу найти ошибку в коде. Что не так? #include <iostream> #include "time.h" #include <Windows.h> using namespace std; void arr(int *c, int &num) { srand(time(NULL)); int A, B;
C++ Определить класс-строку http://www.cyberforum.ru/cpp-beginners/thread1588960.html
Определить класс-строку. В класс включить два конструктора: для определения класса строки строкой символов и путем копирования другой строки (объекта класса строки). Предусмотреть функции поиска слова в строке и добавления другой строки, начиная с позиции N
C++ Реализовать классы с использованием наследования: "Работник", "Стажер", "Руководящий сотрудник", "Директор" Разработать программу с использованием наследования классов, реализующую классы: − работник фирмы; − стажер; − руководящий сотрудник; − директор. Используя виртуальные функции, не зная с объектом какого класса вы работаете, выведите на экран целое число - уровень допуска, и название должности. подробнее

Показать сообщение отдельно
UltimateDoker
1 / 1 / 1
Регистрация: 17.03.2015
Сообщений: 112
22.11.2015, 15:03     Сортировка списка по алфавиту
Есть двусвязный список:
C++
1
2
3
4
5
6
7
8
9
10
struct Stud {
    char fam[40];
    int ball[3];
    double sred = 0;
};
struct List {
    Stud man;
    List *next, *prev; // ссылки на соседние узлы
};
typedef List *PList; // тип данных «указатель на узел»
Мне необходимо отсортировать его по-алфавиту. Написал:
C++
1
2
3
4
5
6
7
8
9
10
11
void sort(PList &Head, int n) {
    int i, j;
    for (i = 0; i < n - 1; i++){
        for (j = i + 1; j < n; j++)
            if (strcmp(Head->man.fam, Head->next->man.fam)>0)
            {
                swap(Head);
            }
    Head = Head->next;
}
}
Я понимаю что косяк в неправильном построении циклов, но как сделать правильно, при условии что у меня список, а не массив, не понимаю. Прошу помочь

Добавлено через 25 минут
Починил)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void sort(PList &Head, int n) {
    PList temp = new List;
    PList tek = new List;
    int i, j;
    for (i = 0; i < n - 1; i++){
        tek = Head;
        for (j = i + 1; j < n; j++) {
            temp = tek->next;
            if (strcmp(tek->man.fam, temp->man.fam) > 0)
            {
                swap(tek);
            }
            temp = tek;
            tek = temp->next;
        }
}
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru