Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 25.05.2015
Сообщений: 19
1

Сортировка массива через указатели

31.05.2015, 00:18. Показов 1161. Ответов 1
Метки нет (Все метки)

как отсортировать по среднему балу именно таким способом, через **ppStAr? Ошибка

IntelliSense: no suitable conversion function from "Student" to "Student *" exists

Помогите с объяснениями, пожалуйста

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
#include <iostream>
#include <iomanip>
using namespace std;
 
#define NUMSIZE 15
#define MARKS 5
 
struct Student
{
    char sName[NUMSIZE];
    char sSurname[NUMSIZE];
    int nAge;
    int MarksAr[MARKS];
    double Average;
};
 
void randGenerateStudent(Student *pStAr, int nSize){
    string arrayName[10] = { "Vasya", "Petya", "Andrey", "Anton", "Misha", "Dima", "Sasha", "Yura", "Kolya", "Artem" };
    string arraySurname[10] = { "Ivanov", "Petrov", "Kyznecov", "Sidorov", "Smirnov", "Klimchuk", "Kovalchuk", "Doroshenko", "Antonov", "Parhomov" };
    int sum = 0;
 
    for (int i = 0; i < nSize; i++){
        strcpy_s(pStAr[i].sName, arrayName[rand() % 10].c_str());
        strcpy_s(pStAr[i].sSurname, arraySurname[rand() % 10].c_str());
        pStAr[i].nAge = 15 + rand() % 6;
        for (int a = 0; a < MARKS; a++)
            pStAr[i].MarksAr[a] = rand() % 5 + 1;
    }
}
 
double average(int arr[], int n){
    double sum = 0;
    for (int i = 0; i < n; i++)
        sum = sum + arr[i];
    return sum / n;
}
 
void printGroupStudent(Student *pStAr, int nSize){
    for (int i = 0; i < nSize; i++)
    {
        cout << "Student number - " << i + 1 << endl;
        cout << pStAr[i].sName << endl;
        cout << pStAr[i].sSurname << endl;
        cout << pStAr[i].nAge << endl;
        for (int a = 0; a < MARKS; a++)
            cout << "marks - " << a + 1 << " = " << pStAr[i].MarksAr[a] << endl;
        pStAr[i].Average = average(pStAr[i].MarksAr, MARKS);
        cout << "Average = " << pStAr[i].Average << endl;
    }
}
 
int sortStudByAverage(Student *pStAr, int nSize){
    Student **ppStAr = new Student *[nSize];
    for (int i = 0; i < nSize; i++)
        for (int j = 0; j < nSize - i - 1; j++){
            if (pStAr[j].Average > pStAr[j + 1].Average)
                ppStAr[i] = pStAr[i];
        }
}
 
int main()
{
    int nSize;
    cout << "enter number of students " << endl;
    cin >> nSize;
    Student *pStAr = new Student[nSize];
    randGenerateStudent(pStAr, nSize);
    printGroupStudent(pStAr, nSize);
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.05.2015, 00:18
Ответы с готовыми решениями:

Сортировка массива типа string через указатели
Итак, пытаюсь реализовать сортировку строкового массива. Почти все сделал, но встал на одном месте...

Сортировка строк через указатели
Создать массив строк на 10 ячеек, заполнить его при инициализации и отсортировать строки по...

Сортировка через ссылку на (указатель на указатели)
Нужно, что бы функция принимала ссылку на указатель на много указателей,( и количество указателей,...

Заполнение массива через rand и вывод на экран через указатели
Учитель задал заполнить массивы и случайными числами и вывезти на экран через указатели, через...

1
lss
935 / 863 / 356
Регистрация: 10.10.2012
Сообщений: 2,706
31.05.2015, 01:26 2
Цитата Сообщение от smallup Посмотреть сообщение
IntelliSense: no suitable conversion function from "Student" to "Student *" exists
C++
1
*ppStAr[i] = pStAr[i];
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.05.2015, 01:26

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Сортировка объектов через указатели, основанная на алфавитном порядке имен
Нашел в книге пример сортировки объектов, содержащих поле типа string, через указатели. Сортировка...

Найти минимальный элемент массива (через указатели, запрещено обращаться к элементам массива по индексам)
Написать программу, создающую массив из 10 случайных целых чисел из отрезка . Вывести на...

Указатели массива и сортировка массива
Доброго времени суток, вот бьюсь над проблемой, нужна программа которая б сортировку динамического...

Сумма эл-тов массива через указатели
Дан массив целых чисел. Вычислить сумму чисел массива с использование указателей Вот код без...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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