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

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

Восстановить пароль Регистрация
 
SHBan
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 21
14.02.2013, 23:23     Сортировка массива структур #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
#include<iostream>
const int sizeName = 20;
 
struct Patrons{
  char name[sizeName];
  double mane;
};
 
int main()
{
    int kolInvest;
   
    (std::cin >> kolInvest).get();
 
    Patrons * dosiePatronse = new Patrons[kolInvest];
 
    
/////////////////////////////////////////////////////
//      ввод массива
    for(int i = 0; i < kolInvest; i++)
    {
      std::cout << "Name - ";
      //std::cin.get(temp->name, sizeName).get();
      std::cin.getline(dosiePatronse[i].name, sizeName);
      std::cout << "$ - ";
      // cin - оставляет в буфере  символ новой стоки "Enter"
      (std::cin >> dosiePatronse[i].mane).get();
    }
   
//////////////////////////////////////////////////////
//          сорторовка массива
 
// Вот ТУТ ------ как можно обойтись без него 
Patrons * temp = new Patrons[kolInvest];
/////////////////////////////////////////////
    for(int i = 1; i < kolInvest; i++)
    {
      for(int j = 0; j < kolInvest-i; j++)
      {
    if(dosiePatronse[j].mane > dosiePatronse[j+1].mane)
    {
      temp[0] = dosiePatronse[j];
      dosiePatronse[j] = dosiePatronse[j+1];
      dosiePatronse[j+1] = temp[0];
    }
      }
    }
delete [] temp;  
//////////////////////////////////////////////////////
//  вывод упорядоченного массива
   for(int i = 0; i < kolInvest; i++)
    {
      std::cout << dosiePatronse[i].name << " " << dosiePatronse[i].mane <<" | ";
    }
    
  return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.02.2013, 23:23     Сортировка массива структур
Посмотрите здесь:

Сортировка массива структур C++
C++ Сортировка массива структур
C++ Сортировка массива структур
Сортировка массива структур C++
C++ сортировка структур массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Venzo
 Аватар для Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
14.02.2013, 23:29     Сортировка массива структур #2
а зачем вы выделяете целый массив, если используете только первую ячейку? хватит одной переменной.
The_bolT
70 / 70 / 1
Регистрация: 22.01.2013
Сообщений: 231
14.02.2013, 23:32     Сортировка массива структур #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
 
#include<iostream>
const int sizeName = 20;
 
struct Patrons{
  char name[sizeName];
  double mane;
};
 
int main()
{
    int kolInvest;
   
    (std::cin >> kolInvest).get();
 
    Patrons * dosiePatronse = new Patrons[kolInvest];
 
    
/////////////////////////////////////////////////////
//      ввод массива
    for(int i = 0; i < kolInvest; i++)
    {
      std::cout << "Name - ";
      //std::cin.get(temp->name, sizeName).get();
      std::cin.getline(dosiePatronse[i].name, sizeName);
      std::cout << "$ - ";
      // cin - оставляет в буфере  символ новой стоки "Enter"
      (std::cin >> dosiePatronse[i].mane).get();
    }
   
//////////////////////////////////////////////////////
//          сорторовка массива
 
// Вот ТУТ ------ как можно обойтись без него 
Patrons  temp ;
/////////////////////////////////////////////
    for(int i = 1; i < kolInvest; i++)
    {
      for(int j = 0; j < kolInvest-i; j++)
      {
    if(dosiePatronse[j].mane > dosiePatronse[j+1].mane)
    {
      temp= dosiePatronse[j];
      dosiePatronse[j] = dosiePatronse[j+1];
      dosiePatronse[j+1] = temp;
    }
      }
    }
 
//////////////////////////////////////////////////////
//  вывод упорядоченного массива
   for(int i = 0; i < kolInvest; i++)
    {
      std::cout << dosiePatronse[i].name << " " << dosiePatronse[i].mane <<" | ";
    }
    std::system("pause>0");
  return 0;
}
Добавлено через 51 секунду
Не успел первый написать)
SHBan
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 21
14.02.2013, 23:36  [ТС]     Сортировка массива структур #4
Спосибо огромное, а то закипел мозг и надо было спросить)) ...
уже не различаю что пристваивал в сортировке))

все понятно всем + спс
Yandex
Объявления
14.02.2013, 23:36     Сортировка массива структур
Ответ Создать тему
Опции темы

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