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

Сортировка вложенной структуры - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Учет товара на складе http://www.cyberforum.ru/cpp-beginners/thread1136846.html
Программа называется Учет товаров на складе. Помогите мне сделать в данной программе поиск и сортировку. Исходник ниже: #include <stdio.h> #include <string.h> #include <iostream> #include <windows.h> #include <conio.h> #include <fstream> using namespace std; const int l_name = 30;
C++ Boost::asio как обнаружить дисконнект на удалённой машине? В данный момент обрабатываю дисконнекты, глядя на возвращаемые коды ошибок после вызовов read(socket,...) и write(socket, ...) Проблема в том, что если удалённый комп оборвёт связь, то комп, ждущий от него посылки в синхронном read, так и будет продолжать ждать! Обрыв обнаруживается только на стороне, разорвавшей связь. Что же делать? И главное, как вывести функцию read из ожидания хотя бы и... http://www.cyberforum.ru/cpp-beginners/thread1136843.html
Дана строка. Подсчитать количество букв, содержащихся в строке C++
Дана строка. Подсчитать количество букв, содержащихся в строке.
C++ Вычислить произведение нечетных отрицательных элементов расположенных под главной диагональю матрицы
2 задача Вычислить произведение нечетных отрицательных элементов расположенных под главной диагональю матрицы B(N,N). ПЛЗ ПОМОГИТЕ!!!
C++ Написать класс Автомобиль http://www.cyberforum.ru/cpp-beginners/thread1136788.html
1. Создать запись для хранения следующей информации: – код владельца, – номер автомобиля, – марка автомобиля, – дата выпуска, – дата регистрации. 2. Предусмотреть возможность добавления, изменения и удаление записи и отображения данных на экран. Для хранения данных использовать стек. 3. Получить список номеров и марок автомобилей, зарегистрированных в ноябре и декабре прошлого года. 4....
C++ Какой то бред с передачей указателя в функцию :-) Привет! Толи бред какой - то :D Толи у меня пробел в азах :rofl: Вот например: void MegaFunction( BYTE *data ); int _tmain(int argc, _TCHAR* argv) { BYTE *test = NULL; MegaFunction(test); подробнее

Показать сообщение отдельно
nmd_owl
Сообщений: n/a
02.04.2014, 13:33     Сортировка вложенной структуры
Всем привет. Дико прошу о помощи, потому что никак не могу заставить отработать сортировку вложенной структуры в программе. Собсно, имеется задание реализовать сортировку массива структур по дате:
Кликните здесь для просмотра всего текста
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
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#include <iostream>
#include <Windows.h>
#include <stdio.h>
#include <string.h>
 
 
 
using namespace std;
 
struct Date
{
    int day;
    int month;
    int year;
}firstCarDate, secondCarDate, thirdCarDate, fourthCarDate, fifthCarDate, xd;
 
struct Car
{
    char mark[50];
    char model[50];
    int passengers;
    Date creationDate;
};
void SortData (Car *m, int size)
{
    for (int i=size-1; i>=0; i--)
    {
        for(int j=0; j<i; j++)
        {
            if (m[j].creationDate.day<=m[j+1].creationDate.day && m[j].creationDate.month<=m[j+1].creationDate.month && m[j].creationDate.year<=m[j+1].creationDate.year)
            {
                continue;
            }
            else if (m[j].creationDate.day>m[j+1].creationDate.day && m[j].creationDate.month>m[j+1].creationDate.month && m[j].creationDate.year>=m[j+1].creationDate.year)
            {
                //          swap(m[j], m[j+1]);
                char q[100];
 
                strcpy(q, m[j].mark);
                strcpy(m[j].mark, m[j+1].mark);
                strcpy(m[j+1].mark, q);
 
                strcpy(q, m[j].model);
                strcpy(m[j].model, m[j+1].model);
                strcpy(m[j+1].model, q);
 
                int w;
                w=m[j].passengers;
                m[j].passengers=m[j+1].passengers;
                m[j+1].passengers=w;
 
                xd=m[j].creationDate;
                m[j].creationDate=m[j+1].creationDate;
                m[j+1].creationDate=xd;
            }
        }
    }
};
void PrintThat (Car *m, int size)
{
    for (int i=0; i<size; i++)
    {
        cout<<"Автомобиль: "<<m[i].mark<<"\t"<< m[i].model<<endl;
        cout<<"Вместимость: "<<m[i].passengers<<" пассажира(ов)"<<endl;
        cout<<"Дата выпуска: "<<m[i].creationDate.day<<"."<<m[i].creationDate.month<<"."<<m[i].creationDate.year<<endl;
    }
};
 
void main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    //Date
 
 
    Date firstCarDate={17, 4, 1997};
    Date secondCarDate={20, 8, 2001};
    Date thirdCarDate={21, 5, 1995};
    Date fourthCarDate={20, 4, 2002};
    Date fifthCarDate={13, 3, 1997};
 
    int size=5;
 
    Car*allCars=new Car[size];
 
    //FirstCar
 
    strcpy(allCars[0].mark, "Alfa-Romeo");
    strcpy(allCars[0].model, "GTV");
    allCars[0].passengers=2;
    allCars[0].creationDate=firstCarDate;
 
    //secondCar
 
    strcpy(allCars[1].mark, "Mitsubishi");
    strcpy(allCars[1].model, "Galant");
    allCars[1].passengers=4;
    allCars[1].creationDate=secondCarDate;
 
    //thirdCar
 
    strcpy(allCars[2].mark, "Nissan");
    strcpy(allCars[2].model, "Skyline");
    allCars[2].passengers=2;
    allCars[2].creationDate=thirdCarDate;
 
    //fourthCar
 
    strcpy(allCars[3].mark, "Subaru");
    strcpy(allCars[3].model, "Impreza_WRX");
    allCars[3].passengers=4;
    allCars[3].creationDate=fourthCarDate;
 
    //fifthCar
 
    strcpy(allCars[4].mark, "BMW");
    strcpy(allCars[4].model, "740");
    allCars[4].passengers=4;
    allCars[4].creationDate=fifthCarDate; 
 
    SortData(allCars, size);
    PrintThat(allCars, size);

сама функция сортировки вроде как по условиям отрабатывает, но функция PrintThat показывает первоначальный массив без изменений. Помогите кто чем может, можно даже ссылками на сортировку вложенных структур
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 08:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru