C++ 如何在数组中对等级进行排序

C++ 如何在数组中对等级进行排序,c++,C++,我想按降序排列他们的成绩。我只是不知道如何使用冒泡排序 void computegrade(string name[], int studentno[], float ave[], int top) { if (top==0){ cout<<"Nothing to display\n"; } cout<<"Students are: " <<"\n" <<"\n"; for (int x=top-1; x>=0; x--) {

我想按降序排列他们的成绩。我只是不知道如何使用冒泡排序

void computegrade(string name[], int studentno[], float ave[], int top)
{
if (top==0){
    cout<<"Nothing to display\n";
}
 cout<<"Students are: " <<"\n" <<"\n";
 for (int x=top-1; x>=0; x--)
 {
    cout<<"Student Name: " <<name[x] <<endl;
    cout<<"Student No: " <<studentno[x] <<endl;
    cout<<"Average: " <<ave[x];
}
 }
void computegrade(字符串名[],int studentno[],float ave[],int top)
{
如果(顶部==0){

cout我建议首先创建一个包含学生信息的结构或类,而不是单独传递所有数组。 完成此操作后,可以将包含学生的结构/类数组传递给函数,然后通过比较分数对数组进行排序,然后交换整个结构/类

student students[number_of_students];
//load the student data here
computegrate(students,top);
然后在函数内部进行比较,必要时进行交换

if(students[i-1].ave < students[i].ave){
student temp = students[i-1];
students[i-1] = students[i];
students[i] = temp;
}
if(学生[i-1].ave
您应该熟悉冒泡排序的完整实现,如果不熟悉,请查看教科书、笔记或一些在线教程。 你必须重写你的函数来接受一组学生。 这样做的好处是,您不必处理所有的单个数据,而是将结构作为一个整体来处理,如本文所示,交换2个学生对象


如果没有类或结构,您必须单独交换所有数组中的学生信息。

使用结构是一个很好的建议,但是使用冒泡排序应该在前面加上一个“如果您不能使用
std::sort
std::swap()
有什么问题吗?是的,您是对的,他们可以使用std::swap())当然,他们应该使用其他东西,我只是假设他们可能在学校或大学工作时使用bubble,这是一项要求。你应该发布你的bubble排序实现,这样我们可以帮助修复它。