21xrx.com
2024-11-05 16:38:18 Tuesday
登录
文章检索 我的文章 写文章
C++成绩和学号排序
2023-07-08 14:08:11 深夜i     --     --
C++ 成绩 学号 排序

C++是一门非常流行的编程语言,其广泛应用于计算机科学领域。在编程中,有时需要按照学号或成绩进行排序。本文将介绍如何使用C++来实现学号和成绩的排序功能。

首先,我们需要定义一个结构体来存储学生的信息,包括学号和成绩。代码如下:

struct student

  int id; // 学号

  int score; // 成绩

;

接下来,我们可以使用STL的sort函数对学生信息进行排序。sort函数需要传入一个比较函数,用来指定排序规则。我们可以定义两个比较函数,分别按照学号和成绩来排序,代码如下:

bool compareId(const student& a, const student& b)

  return a.id < b.id;

bool compareScore(const student& a, const student& b)

  return a.score < b.score;

在比较函数中,比较两个学生信息的学号或成绩大小,如果a的学号或成绩小于b的学号或成绩,则返回true,否则返回false。

最后,我们可以在主函数中定义一个存储学生信息的vector,然后调用sort函数对其进行排序。代码如下:

int main()

{

  vector students = {

     85 ,

     1002,

     1003,

     1004,

     1005

  };

  // 按照学号排序

  sort(students.begin(), students.end(), compareId);

  // 输出排序后的结果

  cout << "Sort by Id:" << endl;

  for (auto& s : students)

    cout << "Id:" << s.id << " Score:" << s.score << endl;

  // 按照成绩排序

  sort(students.begin(), students.end(), compareScore);

  // 输出排序后的结果

  cout << "Sort by Score:" << endl;

  for (auto& s : students)

    cout << "Id:" << s.id << " Score:" << s.score << endl;

  return 0;

}

在这个例子中,我们定义了5个学生的信息,并按照学号和成绩分别进行排序。输出结果如下:

Sort by Id:

Id:1001 Score:85

Id:1002 Score:92

Id:1003 Score:70

Id:1004 Score:88

Id:1005 Score:76

Sort by Score:

Id:1003 Score:70

Id:1005 Score:76

Id:1001 Score:85

Id:1004 Score:88

Id:1002 Score:92

通过以上代码,我们可以发现C++中使用vector和sort函数非常实用,可以很方便地进行排序操作。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复