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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
From_Tula
40 / 40 / 2
Регистрация: 22.05.2009
Сообщений: 482
#1

Сортировка массмва структур - C++

18.05.2010, 22:02. Просмотров 374. Ответов 9
Метки нет (Все метки)

Возник вопрос можно ли организовать как нибудь сортировку массива структур, по какому либо эл-ту из этой структуры.

C++
1
2
3
struct p {
int point;
            } spisok[50];
spisok[0].point=3;
spisok[1].point=2;
spisok[2].point=1;

после сортировки что бы было вот так:

spisok[0].point=1;
spisok[1].point=2;
spisok[2].point=3;

сортировка по возрастанию.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2010, 22:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка массмва структур (C++):

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

Сортировка структур - C++
Написать программу, выполняющую следующие действия: • ввод с клавиатуры данных в массив, состоящий из восьми элементов типа TRAIN; записи...

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

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

Сортировка структур - C++
Помогите составить программу, пожалуйста! Дана структура "поезд" с полями: Наименование маршрута Время отправления Время...

Сортировка структур - C++
Задание такое: Разработайте программу для обработки структурных типов данных. Реализуйте отдельные функции для ввода, вывода, поиска...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
18.05.2010, 22:04 #2
Используйте тип int без оболочки: структуры.
rdksoft
22 / 22 / 2
Регистрация: 24.12.2008
Сообщений: 81
18.05.2010, 22:04 #3
дак как обычный масив сортировать и всё пузырьком например.
From_Tula
40 / 40 / 2
Регистрация: 22.05.2009
Сообщений: 482
18.05.2010, 22:12  [ТС] #4
просто в структуре несколько полей как хотя бы вызвать функцию тогда?

тот же пузырек например
rdksoft
22 / 22 / 2
Регистрация: 24.12.2008
Сообщений: 81
18.05.2010, 22:23 #5
дык вы же сортируете массив отдельных эл-в структуры
From_Tula
40 / 40 / 2
Регистрация: 22.05.2009
Сообщений: 482
18.05.2010, 22:36  [ТС] #6
struct p {
int point1;
int point2;
} spisok[50];

отсортировать структуры по возрастанию по эл-ту point1, в не ависемости от эл-та point2

как правильно вызвать функцию где параметры (кол_во эл-ов, исходный массив)
edd
36 / 36 / 0
Регистрация: 13.05.2010
Сообщений: 81
18.05.2010, 22:51 #7
если сильно не заморачиваться, то можно создать еще один массив и собрать в нем индексы в нужном тебе порядке)))
Hell Knight
230 / 84 / 3
Регистрация: 11.03.2010
Сообщений: 290
18.05.2010, 23:28 #8
сортируется как обычный элемент
например тебе нужно отсортировать по какому-то элементу
вы сравниваете элементы, а перестановку делаете непосредственно уже элементы массива структур
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
19.05.2010, 11:58 #9
From_Tula
Вот пример сортировки написал.
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
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
 
#define S_NAME 30
#define size 4
 
 
struct Data {
unsigned int  Age;
unsigned int  ID;
char Name[S_NAME];
};
 
 
long Sort (Data *m , int size_m );     //сортирует массив.
long Print(Data *m , int size_m );     //вывод массива структур. 
long Input(Data *m , int size_m );    //ввод массива структур.
 
 
int main(){
Data mas[size];
 
Input(mas,size);
Sort(mas,size);
Print(mas,size);
 
getch();
return 0;
}
 
 
//сортирует массив.
long Sort (Data *m , int size_m ){
 
printf("Sort Mas\n");
int i,j;
 
//Сортируем по возрасту.
for(i = 0 ; i < size_m - 1; i++)
    for(j = i + 1; j < size_m; j++)
 
    if(m[j].Age < m[i].Age){
        Data tmp = m[i];
        m[i]=m[j];
        m[j] = tmp;
        }
 
printf("\n");
return 0;
}
 
 
//вывод массива структур. 
long Print(Data *m , int size_m ){
 
 
printf("Print Data Mas\n");
        for( int i = 0 ; i < size_m ; i++ ){
 
        printf("\n");
        printf(" Input Name 20 symbols: %s",m[i].Name); printf("\n");
                printf(" Input Age: %d",m[i].Age)  ; printf("\n");
        printf(" Input ID: %d",m[i].ID)    ; printf("\n");
    }
        printf("\n");
return 0;
}
 
 
 
//ввод массива структур.
long Input(Data *m , int size_m ){
printf("Input Data Mas\n");
    for( int i = 0 ; i < size_m ; i++ ){
        printf("\n");
 
        printf(" Input Name 20 symbols: ");scanf("%s",m[i].Name); 
        
                printf(" Input Age: ")  ;scanf("%d",&m[i].Age);
        printf(" Input ID: ")   ;scanf("%d",&m[i].ID);
    }
printf("\n");
 
return 0;
}
From_Tula
40 / 40 / 2
Регистрация: 22.05.2009
Сообщений: 482
20.05.2010, 21:31  [ТС] #10
Genius Ignat, Спасибо очень помог, теперь разобрался
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2010, 21:31
Привет! Вот еще темы с ответами:

Сортировка структур - C++
Хочу отсортировать структуру по номеру поезда пузырьковым методом. Написал такой код: station *train = new station; station tmp;...

Сортировка структур - C++
Ведомости про участников конкурса имеют следующую информацию: имя, фамилия, секция, адрес, набранный бал. Стоит задание вывести информацию...

Сортировка структур - C++
struct Man{ char name; Название книги char avtor; Автор int day; год издания float kol; ...

Сортировка структур - C++
1 Структура: № комнаты в общежитии, площадь, число жителей, балкон. Отсортировать по площади и вывести все, где жителей меньше 3. 2...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
20.05.2010, 21:31
Ответ Создать тему
Опции темы

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