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

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

Восстановить пароль Регистрация
 
nmd_owl
Сообщений: n/a
02.04.2014, 13:33     Сортировка вложенной структуры #1
Всем привет. Дико прошу о помощи, потому что никак не могу заставить отработать сортировку вложенной структуры в программе. Собсно, имеется задание реализовать сортировку массива структур по дате:
Кликните здесь для просмотра всего текста
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 показывает первоначальный массив без изменений. Помогите кто чем может, можно даже ссылками на сортировку вложенных структур
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2014, 13:33     Сортировка вложенной структуры
Посмотрите здесь:

C++ Структуры(сортировка)
Присвоение значений элементам вложенной структуры C++
сортировка структуры. C++
структура в структуре: есть ли доступ к объектам вложенной структуры из объекта первой? C++
C++ Структуры. Сортировка
C++ Сортировка структуры
C++ Сортировка и структуры
Друзья шаблонного класса. Использование вложенной в класс структуры C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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