#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; } Вроде бы так...
Комментариев нет:
Отправить комментарий