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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать функцию, которая шифрует переданное ей целое беззнаковое число http://www.cyberforum.ru/cpp-beginners/thread974852.html
Написать функцию, которая шифрует переданное ей целое беззнаковое число путём смены местами 0-го и 1-го битов, 2-го и 3-го, … , 30-го и 31-го битов. Функция должна принимать в качестве параметра переменную типа unsigned int и возвращать в качестве результата «зашифрованное» число того же типа. Проверить правильность работы с помощью функции printAsBinary, которую можно найти в файле...
C++ Один слушатель для нескольких компонентов На форме имеется несколько кнопок, которые создаются в цикле и заносятся в массив (List). Можно ли и как в одном обработчике обрабатывать клик по ним? При этом должна быть возможность "обращения" к нажатой кнопке, определение ее позиции в массиве. Заранее спасибо. http://www.cyberforum.ru/cpp-beginners/thread974838.html
Пояснение C++
return - точности в использование + пример return (<повтор действие>) Добавлено через 36 секунд Как-то связано с рекурс?Или как цыкл?
C++ количество четных элементов одномерного массива до числа равному а, Определить количество нечетных элементов двумерного массива
1.Найти количество четных элементов одномерного массива до первого встреченного числа равного наперед заданному числу а. 2.Дан двумерный массив. Определить количество нечетных элементов массива. языком по проще если можно,заранее благодарю всех просмотревших эту тему.
C++ Проверка содержимого массива http://www.cyberforum.ru/cpp-beginners/thread974807.html
Допустим если есть массив char array = { '_' '_' '_' '_' '_' '_' '_' '_' '_' '_' '_'} // и тд.. Как проверить если 1==2==3 элемент массива содержат букве E вывести что вы правы, также проверка должна осуществляться по горизонтали т.е 1 == 4 == 7 тоже вывести вы правы. Элементы массива выводятся в виде матрицы 1 2 3 4 5 6 7 8 9 ну и тд. Главное что бы три элемента были равны введенной...
C++ Ассоциативный массив Простите за нубский вопрос, но гугл мне не помог( Нужно реализовать список радиочастот и названий радио. Получается нужен ассоциативный массив. Я выбрал map. Все бы ничего, но ключ масива должен быть double (т.к. это частота), а значиние строка (название радио). Вот здесь и возник ступор. Приведу пример кода: #include <iostream> #include <string> #include <iomanip> #include <map> подробнее

Показать сообщение отдельно
Heidel
110 / 110 / 7
Регистрация: 11.10.2011
Сообщений: 647

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

11.10.2013, 17:13. Просмотров 284. Ответов 1
Метки (Все метки)

Нужно создать структуру Student c полями Имя, Номер группы, Оценки (массив из 5 элементов)
C++
1
2
3
4
5
6
7
8
9
10
#include "stdafx.h"
using namespace std;
 
const int num = 5;
 
struct Student  {
    string name;
    int groupNumber;
    int progress[num];
};
Потом нужно создать массив структур и отсортировать его по возрастанию номера группы. Пробую сделать через указатели, не получается
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
#include "stdafx.h"
#include "Student.h"
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
srand((unsigned)time(NULL));
 
int n;
cout << "Input n = ";
cin >> n;
cin.ignore();
 
Student * Group = new Student[n];
 
for (int i = 0; i < n; ++i)
{
    cout << "Input name: ";
    getline (cin, Group[i].name);
    Group[i].groupNumber = rand()%5 + 1;
    for (int j = 0; j < num; ++j)
    {
        Group[i].progress[j] = rand()%5 + 2;
    }
}
 
int * groupNumberArray = new int[n];
for (int i = 0; i < n; ++i)
{
    groupNumberArray[i] = Group[i].groupNumber;
}
 
for (int i; i < n - 1; ++i)
{
    int min = i;
    for (int j = i + 1; j < n; ++j)
    {
        if (groupNumberArray[min] <= groupNumberArray[j]) continue;
        min = j;
    }
    if (min != i)
    {
        int temp = groupNumberArray[i];
        groupNumberArray[i] = groupNumberArray[min];
        groupNumberArray[min] = temp;
 
        Student * tempStudent = &Group[i];
        &Group[min] = &Group[i];
        &Group[i] = tempStudent;
    }
}
 
cout << "\n\n";
 
delete [] Group;
delete [] groupNumberArray;
 
system("PAUSE");
return 0;
}
Как сделать так, чтобы сортировка работала?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru