① 3名学生存入二维数组 s[3][2] = {{1,90},{2,85},{3,90}},每行 {学号, 分数}
② 写 cmp(a,b):分数不同按分数降序(高的在前)
③ 分数相同按学号升序(小的在前)
④ 主程序调用 sort(s, s+3, cmp) 排序后逐行输出
📚 知识点回顾
🔄 本节课知识点
sort函数:sort(首地址, 尾地址, cmp) 自定义排序
cmp函数:bool cmp(int a, int b) 返回true表示a排前面
多条件排序:if(第一关键字不同) return 按第一关键字; 然后 return 按第二关键字
二维数组:int s[3][2] 每行存储{学号, 分数}
🔙 之前知识点
头文件:#include <algorithm> 使用sort函数
数组遍历:for(int i=0;i<3;i++) 输出每个学生
数组访问:s[i][0]学号,s[i][1]分数
比较运算符:> 降序,< 升序
🗺️ 解题逻辑线路
第1步:定义二维数组
int s[3][2] = {{1,90}, {2,85}, {3,90}}
↓
第2步:写cmp比较函数
先按分数降序,分数相同按学号升序
↓
第3步:调用sort排序
sort(s, s + 3, cmp) 传入cmp函数
↓
第4步:输出排序结果
遍历数组输出学号和分数
💻 C++ 在线编辑器
📝 代码填空题:黄色虚线标记的 _____ 是需要你填写的部分。
📝 sort_challenge.cpp(填空题)
1
📌 使用说明:
① 编辑代码:直接在代码区点击即可编辑,支持Tab键缩进(4个空格)
② 运行测试:点击"运行测试"按钮,会进行语法检查并模拟运行
③ 复制代码:点击"复制代码"按钮,一键复制到剪贴板
④ 真正编译:本编辑器为模拟运行环境,如需精确结果,请复制代码到 Dev-C++、Code::Blocks 或在线C++编译器中真正编译运行
⑤ 查看提示/详细解析:遇到困难可以点击"查看提示",完成后输入密码点击"🔐 详细解析"对照讲解和参考答案