#cpp #visual_cpp #сортировка #структуры
struct Student
{
char last_name[m];
char name[m];
char surname[m];
int proga[n];
int sda[n];
int mat_analiz[n];
int lin_algebra[n];
int sum_ball;
}student[k];
Подскажите как отсортировать данную структуру по переменой sum_ball, и если совпадает
то по last_name
Как ни пробовал, ничего не получается, просто выдает какую-то ахинею.
Раньше с таким не приходилось работать.
Student temp;
for (int i = 0; i < k; i++)
{
for (int j = i; j < k; j++)
{
if (student[j].sum_ball < student[i].sum_ball)
{
temp.last_name = student[i].last_name;
student[i].last_name = student[j].last_name;
student[j].last_name = temp;
//и так дали с другими
}
}
}
Ну например вот так, с массивами так можно а с структурами как? Это ж не правильно
я понимаю
Ответы
Ответ 1
Требуемый компаратор может выглядеть, например, так: [](const Student&a, const Student&b) { if (a.sum_ball < b.sum_ball) return true; if (a.sum_ball == b.sum_ball) return strcmp(a.last_name,b.last_name) < 0; return false; } Вроде бы так...
Комментариев нет:
Отправить комментарий