我的程序读取每个学生的5个等级的文本文件,并使用菜单选择用户是否需要最大值,最小值或平均值。一切都按预期工作,但等级值没有从高到低列出。这是我的冒泡排序功能:
void bubbleSort(vector<Student>& grades, bool(*doSwapTest)(Student &,
Student &))
{
bool didSwap = false;
for (int i = grades.size() - 1; i > 0; i--)
{
didSwap = false; // we assume no swaps
for (int j = 0; j < 1; j++)
{
if ((*doSwapTest)(grades[j], grades[j + 1]))
{
swap(grades[j], grades[j + 1]);
didSwap = true;
}
} // end of inner for loop
if (!didSwap) break;
} // end of outer for loop
}
以下是我输出的screenshot,注意字母成绩未排序。我试过更改&gt;和&lt;我的交换语句中的运算符,但它似乎没有改变等级的顺序。
我的程序没有返回任何错误,有人可以就如何解决这个问题给我一些建议吗?
答案 0 :(得分:0)
我将(int j = 0; j < 1; j++)
更改为int j = 0; j < i; j++
,这解决了我的问题。