我正在尝试按降序对int
和char
s 的数组(来自一个类)进行排序。这些是学生姓名和成绩。
该类定义为:
class Student {
public:
char name[20];
int grades;
};
numCount
是记录数的增量值。
void bubble_sort(Student theResults[], int numCount)
{
bool swapped = true;
while(swapped)
{
swapped = false;
for(int i=1;i<numCount;i++)
{
if(theResults[i-1].grades < theResults[i].grades)
{
int tempHold = theResults[i-1].grades;
theResults[i-1].grades = theResults[i].grades;
theResults[i].grades = tempHold;
swapped = true;
}
}
}
我遇到的问题是int
值(等级)在循环后正确排序,但难以正确分配名称以匹配等级。
我使用了以下代码,但它不起作用,因为它为学生显示了不正确的成绩。
char* title_temp = theResults[i-1].name;
theResults[i-1].name[20] = theResults[i].name[20];
theResults[i].name[20] = title_temp[20];