バブルソート (Student::name の学生 [] の降順と Class の classes[] 配列をソート) を使用して、同じ関数で構造体の 2 つの配列 (配列の 1 つは他の構造体のメンバー) をソートするにはどうすればよいですか? ::題名?
struct Class
{
string title;
int units;
char grade;
};
struct Student
{
string name;
double gpa;
Class classes[500];
};
主に:
Student students[SIZE];
バブルソートを使用してソートする必要がある構造体の配列をそれぞれ含む構造体の配列をソートしようとしています。私のソート機能を以下に貼り付けます。正しくソートされず、タイトルに従って構造体 classes[] の内部配列が正しくソートされ、for ループの最初の繰り返しで外部配列 st[] が正しくソートされます。2 回目の反復で st[] の要素が交換されたため、最初の要素がソートされません。b/c currentStu は配列の 2 番目の要素に設定されています。
void sort_name(Student st[], int numValues)
{
int currentStu = 0;
int currentClass = 0;
for(currentStu = 0; currentStu < numValues; currentStu++)
{
for(currentClass = 0; st[currentStu].classes[currentClass].title != ""; currentClass++)
{
bubbleUpClass(st, currentClass, currentStu);
}
bubbleUpLastName(st, currentStu, numValues - 1);
}
}