Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Массивы в С++. Найти сумму элементов массива Т, имеющих четные порядковые номера http://www.cyberforum.ru/cpp-beginners/thread755857.html
Дан произвольный массив Т размерности n. Найти сумму элементов массива Т, имеющих четные порядковые номера, а также сумму элементов массива Т, имеющих нечетные порядковые номера. Исходные данные...
C++ Списки. Нужно расставить комментарии Всем доброго времени суток. Помогите расставить комментарии ко всем строкам программы, некоторые комментарии уже расставил. #include <iostream> #include <cstdlib> using namespace std; struct... http://www.cyberforum.ru/cpp-beginners/thread755852.html
C++ Оператор >>
Приветствую. Подскажите, пожалуйста, что означает ">>" в С/С++: size_learnt >> 1;
C++ Структуры. Запросы к данным.
Данные: (в текстовом документе ) Audi 2000 100.000 white 1,1 China BMW 2002 70.000 silver 3,5 Japan Jaguar 1999 40.000 silver 2.7 Brazil Chevrolet 2005 30.000 white 3.2 China Citroen 2008...
C++ Сортировка массива строк методом подсчета http://www.cyberforum.ru/cpp-beginners/thread755844.html
Здравствуйте. Вкратце, задача такова - написать программу, упорядочивающую массив строк в алфавитном порядке методом сортировки подсчетом. Использовать указатели на строки. Обычный алгоритм...
C++ Найти сумму элементов четных строк и произведение элементов нечетных строк массива дан двумерный массив динамический массив. Найти сумму элементов четных строк и произведение элементов нечетных строк. помогите пожалyйста!!!!!!!!!!!!!!!!!! подробнее

Показать сообщение отдельно
septe-mber
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 123

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

08.01.2013, 17:40. Просмотров 490. Ответов 4
Метки (Все метки)

Привет всем ! как отсортировать массив структур ? а то почему не получается ...
вот код
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
#include <iostream>
#include <stdio.h>
 
#define g_max 255
 
using namespace std;
 
struct INFO
{
    char name[g_max];
    char surname[g_max];
    char patronymic[g_max];
    char institute[g_max];
    int groups;
};
 
int main()
{
    FILE* file;
    INFO info, array[g_max];
    int value, n, count(0);
    char filename[g_max];
    cout<<"1. Записать файл"
        <<endl
        <<"2. Прочитать файл"<<endl;
    cin>>value;
    if(value == 1)
    {
        cout<<"Введите имя файла: ";
        cin>>filename;
        if((file = fopen(filename, "wb")) == NULL)
            perror("Не удается создать файл: ");
        cout<<"Количество студентов: ";
        cin>>n;
        for(int i = 0; i < n; i++)
        {
            cout<<"Имя: ";
            cin>>info.name;
            cout<<"Фамилия: ";
            cin>>info.surname;
            cout<<"Отчество: ";
            cin>>info.patronymic;
            cout<<"Институт: ";
            cin>>info.institute;
            cout<<"Номер группы: ";
            cin>>info.groups;
            fwrite(&info, sizeof(INFO), 1, file);
        }
        cout<<"Запишь успешно записан"<<endl;
        fclose(file);
    }
    else if(value == 2)
    {
        cout<<"Введите имя файла: ";
        cin>>filename;
        if((file = fopen(filename, "rb")) == NULL)
            perror("Не открывается файл: ");
        else while(fread(&info, sizeof(INFO), 1, file))
        {
            array[count++] = info;
            cout<<"Имя: "<<info.name
                <<endl
                <<"Фамилия: "<<info.surname
                <<endl
                <<"Отчество: "<<info.patronymic
                <<endl
                <<"ВУЗ: "<<info.institute
                <<endl
                <<"Номер группы: "<<info.groups<<endl<<endl;
        }
        fclose(file);
    }
    else cout<<"Error";
    INFO buf[g_max];
    for(int i = count - 1; i > 0; i--) //сортировка 
        for(int j = 0; j < i; j++)
            if(array[j].institute > array[j + 1].institute)
            {
                buf[i] = array[j];
                array[j] = array[j + 1];
                array[j + 1] = buf[i];
            }
    
    
    cout<<"Имя"<<endl;
    for(int i = 0; i < count; i++)
        cout<<array[i].name<<'\t';
    cout<<endl<<"Фамилия"<<endl;
    for(int i = 0; i < count; i++)
        cout<<array[i].surname<<'\t';
    cout<<endl<<"Отчество"<<endl;
    for(int i = 0; i < count; i++)
        cout<<array[i].patronymic<<'\t';
    cout<<endl<<"ВУЗ"<<endl;
    for(int i = 0; i < count; i++)
        cout<<array[i].institute<<'\t';
    cout<<endl<<"ГР"<<endl;
    for(int i = 0; i < count; i++)
        cout<<array[i].groups<<'\t';
    return 0;
}
Добавлено через 2 минуты
именно отсортировать отдельное поле ...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.