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

Как отсортировать структуру - C++

Восстановить пароль Регистрация
 
vitalu
2 / 2 / 1
Регистрация: 25.06.2013
Сообщений: 47
24.10.2013, 11:13     Как отсортировать структуру #1
C++
1
2
3
4
5
6
7
8
struct Books
{
    char *Nazvan;          //название книги
    char *Name_avtor;   //автор
    int Yaer_izd;             // год издания
    int Stranic;              //количество страниц
    double Cena;          //цена книги
};
отсортировать авторов по алфавиту
таким образом сортируются только авторы, а все остальное остается на прежних местах, как отсортировать (подставить к отсортированному) все остальное
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//-авторы по алфавиту
void alf_avtor(Books *pKatalog, const int a)
{
    SetColor(Green,Black);
    cout<<"\n"<<"Авторы по алфавиту"<<endl; 
    int i, j;
    char *temp;
    for(i=1;i<a;i++){  
        temp = pKatalog[i].Name_avtor; 
        
        for (j=i-1;j>=0 && strcmp(pKatalog[j].Name_avtor,temp)>0;j--)
            pKatalog[j+1].Name_avtor=pKatalog[j].Name_avtor;    
            pKatalog[j+1].Name_avtor = temp; 
    }
    for(i=0;i<a;i++)
        puts( pKatalog[i].Name_avtor);
    SetColor(White,Black);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2013, 11:13     Как отсортировать структуру
Посмотрите здесь:

C++ Как отсортировать структуру?
Как отсортировать структуру? C++
отсортировать структуру C++
C++ Отсортировать структуру
Stl отсортировать структуру C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
24.10.2013, 11:30     Как отсортировать структуру #2
Ну потому что вы меняете местами только имя автора. Меняйте местами сами объекты структуры в массиве.
C++
1
2
3
4
5
6
Books temp;
    for(i=1;i<a;i++){  
        temp = pKatalog[i]; 
        for (j=i-1;j>=0 && strcmp(pKatalog[j].Name_avtor, temp.Name_avtor)>0;j--)
            pKatalog[j+1]=pKatalog[j];    
            pKatalog[j+1] = temp;
Ну и остальное по аналогии исправить.
Кстати да, там после фторого for, по j который, скобки фигурные не забыли случайно?
newyork7776
 Аватар для newyork7776
346 / 339 / 79
Регистрация: 21.05.2013
Сообщений: 1,305
Завершенные тесты: 1
24.10.2013, 11:31     Как отсортировать структуру #3
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <cstdlib>
#include <cstring>
 
using namespace std;
 
struct Books
{
    char Nazvan[50];          //название книги
    char Name_avtor[50];      //автор
    int Yaer_izd;          // год издания
    int Stranic;           //количество страниц
    double Cena;           //цена книги
};
 
void print(const Books &m)
{
    cout << "Nazvan = "    << m.Nazvan    << "\n"
         << "Name_avtor = " << m.Name_avtor << "\n"
         << "Yaer_izd = " << m.Yaer_izd << "\n"
         << "Stranic = " << m.Stranic << "\n"
         << "Cena = "     << m.Cena << "\n\n";
}
 
void init(Books &m)
{
    cout << "Nazvan: ";cin >> m.Nazvan;
    cout << "Name_avtor: ";cin >> m.Name_avtor;
    cout << "Yaer_izd: ";cin >> m.Yaer_izd;
    cout << "Stranic: ";cin >> m.Stranic;
    cout << "Cena: ";cin >> m.Cena;
    
}
  
void mySort(Books *arr, const int size)
{
    // пузырьковая сортировка. Сортируем по полю Name_avtor
    for (int i=0; i < size; i++)
        for (int j=size-1; j > i; j--)
            if (strcmp(arr[i].Name_avtor, arr[j].Name_avtor) > 0)
            {
                // мегняем местами
                Books tmp = arr[i]; // временная переменная
                arr[i] = arr[j];
                arr[j] = tmp;
            }
}
 
int main()
{
    const int size = 2;
    Books pArr[size];
    // в цикле инициализируем структуры
    for (int i=0; i < size; i++)
        init(pArr[i]);
 
    for (int i=0; i < size; i++)
        print(pArr[i]); // вызываем функцию print, передавая элемент массива pArr[i]
  
    cout << "\nSorted:\n";
    mySort(pArr, size);
    for (int i=0; i < size; i++)
        print(pArr[i]); // вызываем функцию print, передавая элемент массива pArr[i]
 
    system("pause"); // пауза
}

вот примерно вот так или направельно?
vitalu
2 / 2 / 1
Регистрация: 25.06.2013
Сообщений: 47
24.10.2013, 11:40  [ТС]     Как отсортировать структуру #4
Цитата Сообщение от Rivory Посмотреть сообщение
Ну потому что вы меняете местами только имя автора. Меняйте местами сами объекты структуры в массиве.
C++
1
2
3
4
5
6
Books temp;
    for(i=1;i<a;i++){  
        temp = pKatalog[i]; 
        for (j=i-1;j>=0 && strcmp(pKatalog[j].Name_avtor, temp.Name_avtor)>0;j--)
            pKatalog[j+1]=pKatalog[j];    
            pKatalog[j+1] = temp;
Ну и остальное по аналогии исправить.
Кстати да, там после фторого for, по j который, скобки фигурные не забыли случайно?
Да но теперь ошибка в strcmp
Ошибка 1 error C2664: strcmp: невозможно преобразовать параметр 2 из "Books" в "const char *"
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
24.10.2013, 12:15     Как отсортировать структуру #5
Мммм, какие Books? Вы там точно temp.Name_avtor добавили, а не просто temp?
vitalu
2 / 2 / 1
Регистрация: 25.06.2013
Сообщений: 47
24.10.2013, 12:29  [ТС]     Как отсортировать структуру #6
Цитата Сообщение от Rivory Посмотреть сообщение
Мммм, какие Books? Вы там точно temp.Name_avtor добавили, а не просто temp?
Все исправил большое спасибо, работает, можете еще подсказать: - обеспечить поступление новых книг в магазин
игнорирует второй scanf а затем вообще вырубает программу?

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
//    - обеспечить поступление новых книг в магазин
 
void new_boks(Books *pKatalog, const int a)
{
    int col;
    cout<<"\nВведите количество книг, которое Вы хотите добавить\n";
    cin>>col;
 
    Books *pNewBok=new Books[a+col];
 
    for(int i=0,k=0; i<a+col; i++)
    {
        if(i<col)
        {
            cout<<"Введите название книги\n";
            scanf ("%s",&pNewBok[i].Nazvan);
            cout<<"Введите имя автора\n";
            scanf ("%s",&pNewBok[i].Name_avtor);
            cout<<"Введите год издания книги\n";
            cin>>pNewBok[i].Yaer_izd;
            cout<<"Введите количество страниц книги\n";
            cin>>pNewBok[i].Stranic;
            cout<<"Введите цену книги\n";
            cin>>pNewBok[i].Cena;
        }
        else
        {
            pNewBok[i]=pKatalog[k];
            k++;
        }
    }
    
    delete []pKatalog;
    pKatalog=pNewBok;
    print(pNewBok, a);
}
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
24.10.2013, 12:42     Как отсортировать структуру #7
А зачем вообще так сильно мешать C и C++? Чем вам cin >> pNewBok[i].Nazvan не угодил?
vitalu
2 / 2 / 1
Регистрация: 25.06.2013
Сообщений: 47
24.10.2013, 12:48  [ТС]     Как отсортировать структуру #8
Цитата Сообщение от Rivory Посмотреть сообщение
А зачем вообще так сильно мешать C и C++? Чем вам cin >> pNewBok[i].Nazvan не угодил?
если название состоит допустим из 3-х слов, то cin считает только первое, а как быть с остальными?
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
24.10.2013, 12:53     Как отсортировать структуру #9
И да, я не пользовался scanf'ом вечность, но насколько я помню, там не надо писать амперсант(&) при передаче массива внутрь.

Добавлено через 4 минуты
Цитата Сообщение от vitalu Посмотреть сообщение
если название состоит допустим из 3-х слов, то cin считает только первое, а как быть с остальными?
C++
1
std::cin.getline(str, 1024);
str - куда пишем, 1024 - длинна строки.
vitalu
2 / 2 / 1
Регистрация: 25.06.2013
Сообщений: 47
24.10.2013, 13:08  [ТС]     Как отсортировать структуру #10
Цитата Сообщение от Rivory Посмотреть сообщение
И да, я не пользовался scanf'ом вечность, но насколько я помню, там не надо писать амперсант(&) при передаче массива внутрь.

Добавлено через 4 минуты


C++
1
std::cin.getline(str, 1024);
str - куда пишем, 1024 - длинна строки.
пытался и cin.getline и gets и cin все равно не работает. ошибки не выдает, иногда просто игнорирует ввод, а иногда полностью вываливается программа

Добавлено через 9 минут
вот тоже в функции игнорирует ввод gets
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
// - поиск по названию, вывести информацию о книге
void nazv_poisk(Books *pKatalog, const int a)
{
char name_bok[80];
cout<<"\nВведите название книги\n";
SetColor(Green,Black);
 
gets(name_bok);
int i=0;    
/*cin.getline(name_bok, 80);*/
/*cin>>name_bok;*/
for(; i<a; i++)
{
if(strstr(pKatalog[i].Nazvan, name_bok))
{   
cout<<pKatalog[i].Nazvan<<" "; 
cout<<pKatalog[i].Name_avtor<<" ";
cout<<pKatalog[i].Yaer_izd<<" ";
cout<<pKatalog[i].Stranic<<" ";
cout<<pKatalog[i].Cena<<endl;   
}
}
if(!(strstr(pKatalog[i].Nazvan, name_bok)))
{
SetColor(Red,Black);
cout<<"Нет в наличии\n";
}
 
SetColor(White,Black);
}
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
24.10.2013, 13:13     Как отсортировать структуру #11
Ну я даже не знаю, у меня работает.
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
#include <iostream>
using namespace std;
 
struct Books
{
    char *Nazvan;          //название книги
    char *Name_avtor;   //автор
    int Year_izd;             // год издания
    int Stranic;              //количество страниц
    double Cena;          //цена книги
};
 
void print_book(Books book)
{
    cout << "Caption: " << book.Nazvan << endl;
    cout << "Name: " << book.Name_avtor << endl;
    cout << "Year_izd: " << book.Year_izd << endl;
    cout << "Pages: " << book.Stranic << endl;
    cout << "Price: " << book.Cena << endl;
}
 
int main()
{
    Books book;
    cout<<"Enter caption\n";
    cin.getline(book.Nazvan, 100);
    cout<<"Enter author's name\n";
    cin.getline(book.Name_avtor, 100);
    cout<<"Enter year of publication\n";
    cin>>book.Year_izd;
    cout<<"Enter the number of pages of the book\n";
    cin>>book.Stranic;
    cout<<"Enter book's price\n";
    cin>>book.Cena;
    print_book(book);
    system("pause");
    return 0;
}
Миниатюры
Как отсортировать структуру  
vitalu
2 / 2 / 1
Регистрация: 25.06.2013
Сообщений: 47
24.10.2013, 13:19  [ТС]     Как отсортировать структуру #12
а попробуйте пожалуйста весь мой код пункт 4 и 5 , будет у Вас работать или нет?
Большое спасибо
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
#include<iostream>
using namespace std;
#include<conio.h>
#include<clocale>
#include<stdlib.h>
#include<ctime>
#include<iomanip>
#include<cmath>
#include<stdio.h>
 
#include<windows.h>
enum ConsoleColor{Black, Blue, Green, Cyan, Red, Magenta, Brown, LightGray, DarkGray, LightBlue, LightGreen, LightCyan, LightRed, LightMagenta, Yellow, White};
 
void SetColor(ConsoleColor text, ConsoleColor background)
{ 
   HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
   SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | text));
}
//1. Напишите программу структурного описания каталога одной книги.
//2. Написать следующие функции:
//    - вывести список всех книг;
//    - обеспечить хранение книг в следующей последовательности: авторы по алфавиту,книги по алфавиту;
//    - проверить наличие определенной книги в магазине;
//    - обеспечить поступление новых книг в магазин;
//    - обеспечить возможность списания книг (продано);
//    - поиск по названию, вывести информацию о книге;
//    - поиск по автору, вывести список его книг.
struct Books
{
    char *Nazvan;
    char *Name_avtor;
    int Yaer_izd;
    int Stranic;
    double Cena;
};  
//    - вывести список всех книг;
void print(Books *pKatalog, const int a)
{
    SetColor(Green,Black);
    cout<<"\nСписок всех книг"<<endl;
for(int i=0; i<a; i++)
    {   
        cout<<pKatalog[i].Nazvan<<" "; 
        cout<<pKatalog[i].Name_avtor<<" ";
        cout<<pKatalog[i].Yaer_izd<<" ";
        cout<<pKatalog[i].Stranic<<" ";
        cout<<pKatalog[i].Cena<<endl;       
    }
SetColor(White,Black);
}
 
//-авторы по алфавиту
void alf_avtor(Books *pKatalog, const int a)
{
    SetColor(Green,Black);
    cout<<"\n"<<"Авторы по алфавиту"<<endl; 
    int i, j;
    Books temp;
    for(i=1;i<a;i++){  
        temp = pKatalog[i]; 
        
        for (j=i-1;j>=0 && strcmp(pKatalog[j].Name_avtor,temp.Name_avtor)>0;j--)
            pKatalog[j+1]=pKatalog[j];      
            pKatalog[j+1] = temp; 
    }
    for(i=0;i<a;i++)
        puts( pKatalog[i].Name_avtor);
    SetColor(White,Black);
}
 
//-книги по алфавиту
void alf_boks(Books *pKatalog, const int a)
{
    SetColor(Green,Black);  
    cout<<"\n"<<"Книги по алфавиту"<<endl;
    int i, j;
    Books temp;
    for(i=1;i<a;i++)
    {  
        temp= pKatalog[i]; 
        
        for (j=i-1;j>=0 && strcmp(pKatalog[j].Nazvan,temp.Nazvan)>0;j--)    {   
            pKatalog[j+1]=pKatalog[j];          
        }
            pKatalog[j+1] = temp; 
            
            
    }   
    for(i=0;i<a;i++)
        puts( pKatalog[i].Nazvan);
    SetColor(White,Black);
}
 
//???????????????????????????????????????????????????????????????????????
//    - поиск по названию, вывести информацию о книге
// 2.Если мне нужно ввести полное название книги, как это сделать, gets он игнорирует, просто пропускает, так же и cin.getline, иногда бывают предупреждения заменить на функции gets_s и scanf_s но результат от этого не меняется
void nazv_poisk(Books *pKatalog, const int a)
{
    char name_bok[80];
    cout<<"\nВведите название книги\n";
    SetColor(Green,Black);
 
    scanf ("%s",&name_bok);
    int i=0;
    /*gets(name_bok);*/
    /*cin.getline(name_bok, 80);*/
    /*cin>>name_bok;*/
for(; i<a; i++)
    {
    if(strstr(pKatalog[i].Nazvan, name_bok))
      {      
        cout<<pKatalog[i].Nazvan<<" "; 
        cout<<pKatalog[i].Name_avtor<<" ";
        cout<<pKatalog[i].Yaer_izd<<" ";
        cout<<pKatalog[i].Stranic<<" ";
        cout<<pKatalog[i].Cena<<endl;   
      }
    }
if(!(strstr(pKatalog[i].Nazvan, name_bok)))
{
    SetColor(Red,Black);
    cout<<"Нет в наличии\n";
}
 
SetColor(White,Black);
}
//???????????????????????????????????????????????????????????????????????
 
//???????????????????????????????????????????????????????????????????
//    - обеспечить поступление новых книг в магазин
// 3.Опять проблемы с вводом
void new_boks(Books *pKatalog, const int a)
{
    int col;
    cout<<"\nВведите количество книг, которое Вы хотите добавить\n";
    cin>>col;
 
    Books *pNewBok=new Books[a+col];
 
    for(int i=0,k=0; i<a+col; i++)
    {
        if(i<col)
        {
            cout<<"Введите название книги\n";
            scanf ("%s",pNewBok[i].Nazvan);
            cout<<"Введите имя автора\n";
            gets(pNewBok[i].Name_avtor);
 
            cout<<"Введите год издания книги\n";
            cin>>pNewBok[i].Yaer_izd;
            cout<<"Введите количество страниц книги\n";
            cin>>pNewBok[i].Stranic;
            cout<<"Введите цену книги\n";
            cin>>pNewBok[i].Cena;
        }
        else
        {
            pNewBok[i]=pKatalog[k];
            k++;
        }
    }
    for(int i=0; i<a+col; i++)
    {   
        cout<<pNewBok[i].Nazvan<<" "; 
        cout<<pNewBok[i].Name_avtor<<" ";
        cout<<pNewBok[i].Yaer_izd<<" ";
        cout<<pNewBok[i].Stranic<<" ";
        cout<<pNewBok[i].Cena<<endl;        
    }
    delete []pKatalog;
    pKatalog=pNewBok;
    //print(pNewBok, a);
}
//?????????????????????????????????????????????????????????????????????????
 
//    - поиск по автору, вывести список его книг
void avtor_poisk(Books *pKatalog, const int a)
{
    char name_avt[40];
    cout<<"\nВведите имя автора книги\n";
    SetColor(Green,Black);
    scanf ("%s",name_avt);
 
    /*gets(name_bok);*/
    /*cin.getline(name_bok, 40);*/
    /*cin>>name_bok;*/
    bool flag=false;
for(int i=0; i<a; i++)
    {
    if(strstr(pKatalog[i].Name_avtor, name_avt))
      {
          flag=true;
        cout<<pKatalog[i].Nazvan<<" "; 
        cout<<pKatalog[i].Name_avtor<<" ";
        cout<<pKatalog[i].Yaer_izd<<" ";
        cout<<pKatalog[i].Stranic<<" ";
        cout<<pKatalog[i].Cena<<endl;   
      }
    }
if(!flag)
{
    SetColor(Red,Black);
    cout<<"Нет в наличии\n";
}
 
SetColor(White,Black);
} 
 
 
void (*boks[6])(Books *, const int)={print, alf_avtor, alf_boks/*, nalichie*/, new_boks, /*delete_buks,*/ nazv_poisk, avtor_poisk};
 
void main()
{
    setlocale(LC_CTYPE,"rus");
    const int size=5;
    int point;
    Books Katalog[size]={{"Osnovu programmirovaniy", "Harvi Deitl", 1998, 1078,380},{"The Changed Man and the King of Words", "Card, Orson Scott", 2010, 950,400},{"Yazuk programmirovaniy C", "Gerbert Shildt", 2012, 1078,500},{"Programmirovanie na C++", "Harvi Deitl", 2000, 1020,315},{"Neznayka na lune", "Nikolay Nosov", 1997, 1000,320}};
    Books *pKatalog=new Books[size];
 
    for(int i=0; i<size; i++)
    {       
        pKatalog[i]=Katalog[i];             
    }
    
    cout<<"\t\tВыберите пункт меню\n";
    do{
    cout<<"\nВывести список всех книг (1)\nОбеспечить хранение книг в следующей последовательности:\n  -авторы по алфавиту (2)\n  -книги по алфавиту (3)\n"<</*Проверить наличие определенной книги в магазине (4)\n*/"Обеспечить поступление новых книг в магазин (4)\n"/*Обеспечить возможность списания книг (продано) (6)\n*/<<"Поиск по названию, вывести информацию о книге (5)\nПоиск по автору, вывести список его книг (6)\nВыход (0)\n";
    cin>>point; 
    if(!point)
        break;
        (*boks[point-1])(pKatalog, size);
    }while(point);
}
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
24.10.2013, 13:22     Как отсортировать структуру #13
vitalu, Мда, это будет проблематично.
Миниатюры
Как отсортировать структуру  
vitalu
2 / 2 / 1
Регистрация: 25.06.2013
Сообщений: 47
24.10.2013, 13:25  [ТС]     Как отсортировать структуру #14
Цитата Сообщение от Rivory Посмотреть сообщение
vitalu, Мда, это будет проблематично.
Не знаю, у меня выводит на русском нормально
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
24.10.2013, 14:00     Как отсортировать структуру #15
В общем первая ошибка была в том, что он вылетал с Access Violation при первом же обращении к pNewBok.Nazvan, вылечил тем, что выделяю память под char* Nazvan и char* Name.
Вторая ошибка была в том, что он при первом же getline берет откуда-то \0, я покопался в дебагере, так и не понял откуда он его тащит. Решил просто дублированием захвата строки.

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
void new_boks(Books *pKatalog, const int a)
{
    int col=0;
    cout<<"\nNumber\n";
    cin>>col;
    Books* pNewBok = new Books[a+col];
    for(int i=0,k=0; i<a+col; i++)
    {
        if(i<col)
        {
            pNewBok[i].Nazvan = new char[100];
            pNewBok[i].Name_avtor = new char[100];
            cout<<"Caption\n";
            cin.getline(pNewBok[i].Nazvan, 100);
            cin.getline(pNewBok[i].Nazvan, 100);
            cout<<"Name\n";
            cin.getline(pNewBok[i].Name_avtor, 100);
 
            cout<<"Введите год издания книги\n";
            cin>>pNewBok[i].Yaer_izd;
            cout<<"Введите количество страниц книги\n";
            cin>>pNewBok[i].Stranic;
            cout<<"Введите цену книги\n";
            cin>>pNewBok[i].Cena;
        }
        else
        {
            pNewBok[i]=pKatalog[k];
            k++;
        }
    }
    for(int i=0; i<a+col; i++)
    {
        cout<<pNewBok[i].Nazvan<<" ";
        cout<<pNewBok[i].Name_avtor<<" ";
        cout<<pNewBok[i].Yaer_izd<<" ";
        cout<<pNewBok[i].Stranic<<" ";
        cout<<pNewBok[i].Cena<<endl;
    }
    delete []pKatalog;
    pKatalog=pNewBok;
    //print(pNewBok, a);
}
Это по 4ому пункту. Пятый пункт не смотрел, думаю там что-то похожее.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2013, 14:12     Как отсортировать структуру
Еще ссылки по теме:

C++ Отсортировать структуру по алфавиту
C++ Отсортировать структуру
C++ Как отсортировать структуру с полями string по алфавиту

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

Или воспользуйтесь поиском по форуму:
vitalu
2 / 2 / 1
Регистрация: 25.06.2013
Сообщений: 47
24.10.2013, 14:12  [ТС]     Как отсортировать структуру #16
Большое спасибо!!!!!!!!!!!!!!!!!!!!!!
Yandex
Объявления
24.10.2013, 14:12     Как отсортировать структуру
Ответ Создать тему
Опции темы

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