用冒泡排序写一段代码:要求可以对高数、英语、物理任意一科成绩排序
时间: 2023-12-24 09:03:38 浏览: 111
以下是用冒泡排序对高数成绩进行排序的 C++ 代码示例:
```c++
void bubbleSort(vector<Student>& stus, string subject) {
int len = stus.size();
for (int i = 0; i < len - 1; i++) {
for (int j = 0; j < len - i - 1; j++) {
if (subject == "math" && stus[j].math < stus[j+1].math) {
swap(stus[j], stus[j+1]);
}
if (subject == "english" && stus[j].english < stus[j+1].english) {
swap(stus[j], stus[j+1]);
}
if (subject == "physics" && stus[j].physics < stus[j+1].physics) {
swap(stus[j], stus[j+1]);
}
}
}
}
```
这段代码定义了一个名为 `bubbleSort` 的函数,接收一个名为 `stus` 的 `Student` 类型向量和一个名为 `subject` 的字符串类型参数,表示要排序的科目。函数中使用了两层循环,外层循环控制排序轮数,内层循环控制每一轮比较和交换。
在每一轮内部,通过判断参数 `subject` 的值,对相应科目的成绩进行比较,并交换位置。这里使用了 `swap` 函数来交换两个 `Student` 对象。
使用该函数对英语成绩进行排序,只需将 `if` 语句中的 `subject` 改为 `"english"` 即可。对物理成绩进行排序,将 `subject` 改为 `"physics"` 即可。
阅读全文