Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
ramil322
1 / 1 / 0
Регистрация: 13.05.2017
Сообщений: 18
1

Сортировка Структур

03.10.2017, 22:30. Просмотров 91. Ответов 2
Метки нет (Все метки)

Как организовать обмен по типу данных char?
Какие есть способы сортировки в таких случаях?


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
#include <stdio.h>
#include <iostream>
 
using namespace std;
 
struct teacher {
    char surname[20];
    char name[20];
    int age;
};
 
struct school  {
    char nameschool[20];
    struct teacher st;
};
 
 
int main ()
{   const int n=3;
    school mass[n];
    school buff;
    int i;
    for(i=0;i<n;i++){
    cout<<"enter school"<<endl;
    cout<<"nameschool:"; cin>>mass[i].nameschool;
    cout<<"----------"<<endl;
    cout<<"enter teacher"<<endl;
    cout<<"surname:"; cin>>mass[i].st.surname;
    cout<<"name:";    cin>>mass[i].st.name;
    cout<<"age:";     cin>>mass[i].st.age;
    cout<<"----------"<<endl;
    };
    system("cls");
    bool prov=false;
    while(!prov){
            prov=true;
        for(i=0;i<n;i++){  // сортировка по возрасту 
            if(mass[i].st.age>mass[i+1].st.age){
                buff.nameschool=mass[i].nameschool;
                mass[i].nameschool=mass[i+1].nameschool;
                mass[i+1].nameschool=buff.nameschool;
 
                buff.st.name=mass[i].st.name;
                mass[i].st.name=mass[i+1].st.name;
                mass[i+1].st.name=buff.st.name;
 
                buff.st.surname=mass[i].st.surname;
                mass[i].st.surname=mass[i+1].st.surname;
                mass[i+1].st.surname=buff.st.surname;
 
                buff.st.age=mass[i].st.age;
                mass[i].st.age=mass[i+1].st.age;
                mass[i+1].st.age=buff.st.age;
 
                prov=false;
            };
        };
    };
    system("pause");
    return 0;
};
Добавлено через 2 часа 26 минут
Сделал но очень криво на костылях
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
school buff;
    bool prov=false;
    while(!prov){
            prov=true;
        for(int i=0;i<n-1;i++){  
            if(mass[i].st.age>mass[i+1].st.age){
                strcpy(buff.nameschool, mass[i].nameschool);
                strcpy(mass[i].nameschool, mass[i+1].nameschool);
                strcpy(mass[i+1].nameschool, buff.nameschool);
 
                strcpy(buff.st.name, mass[i].st.name);
                strcpy(mass[i].st.name, mass[i+1].st.name);
                strcpy(mass[i+1].st.name, buff.st.name);
 
                strcpy(buff.st.surname, mass[i].st.surname);
                strcpy(mass[i].st.surname, mass[i+1].st.surname);
                strcpy(mass[i+1].st.surname, buff.st.surname);
 
                buff.st.age=mass[i].st.age;
                mass[i].st.age=mass[i+1].st.age;
                mass[i+1].st.age=buff.st.age;
                prov=false;
            };
        };
    };
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2017, 22:30
Ответы с готовыми решениями:

Блочная сортировка структур (Отсортировать массив структур по фамилии)
Подскажите алгоритм блочной сортировки структур на языке С++. Мне нужно...

Сортировка структур
struct Man{ char name; Название книги char avtor; Автор int day; ...

Сортировка массива структур "Студент" по сумме баллов
Здравствуйте. Помогите пожалуйста. Делаю уже месяц, задача простоя а наверно я...

Сортировка структур
Ведомости про участников конкурса имеют следующую информацию: имя, фамилия,...

Сортировка структур
Помогите составить программу, пожалуйста! Дана структура &quot;поезд&quot; с полями: ...

2
DU3
281 / 233 / 115
Регистрация: 07.09.2016
Сообщений: 587
04.10.2017, 01:30 2
а простой вариант не работает чтоли:
C++
1
2
3
buff = mas[i];
mas[i] = mas[i+1]
mas[i+1] = buff;
0
MrGluck
Модератор
Эксперт CЭксперт С++
8105 / 4957 / 1436
Регистрация: 29.11.2010
Сообщений: 13,451
04.10.2017, 11:30 3
Цитата Сообщение от ramil322 Посмотреть сообщение
Какие есть способы сортировки в таких случаях?
Использовать std::string.
Но если охота сишными способами, то strcpy в буфер. И не забыть, что сравнивать нужно через strcmp, а не оператор <
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2017, 11:30

Сортировка структур
1 Структура: № комнаты в общежитии, площадь, число жителей, балкон....

Сортировка структур
Доброго времени суток! Помогите, пожалуйста, с сортировкой односвязного списка...

Сортировка структур
Подскажите с сортировкой. В функции SortSwap отсортировал по среднему значения....


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

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

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