- C++
信奥周六20240309-1330
- 2024-3-9 15:12:19 @
课堂总结: 对于排序算法的灵活使用
1、按整数大小排序,附带排序对应的名称或者编号。
2、第一排序条件和第二排序条件的设置。
3、字符串排序,首字符ASCII大小,字符串长度,字符串字典序。
课堂例题:
作业:
1、最大偶数
2、最大整数
3 条评论
-
xinao019 LV 3 @ 2024-3-16 13:36:37
-
2024-3-15 21:43:21@
-
2024-3-9 15:42:26@
#include<bits/stdc++.h> using namespace std; int main(){ //1、分析题意 //已知:报名人数、录取人数、报名编号和笔试成绩 //未知:晋级面试分数线---》排名:录取人数*1.5的向下取整的成绩 //未知:晋级人数:计数看有多少人分数大于等于分数线 //未知:晋级人员的报名号和 //中间变量:有排名的成绩数组和报名编号数组 //2、定义变量 int n,m;//报名人数、录取人数 int a[5010],b[5010];//报名编号和笔试成绩 int c,d=0;// 晋级面试分数线,晋级人数 //3、输入 cin>>n>>m; for(int i=1;i<=n;i++)cin>>a[i]>>b[i]; //4、分步骤运算得到未知变量 //4.1 按照笔试成绩从大到小排序,冒泡 for(int i=1;i<=n-1;i++) for(int j=1;j<=n-i;j++){ if(b[j]<b[j+1]){ swap(b[j],b[j+1]); swap(a[j],a[j+1]); }else if(b[j]==b[j+1]){ if(a[j]<a[j+1]){ swap(b[j],b[j+1]); swap(a[j],a[j+1]); } } } //4.2 求录取分数线 c = b[m*150/100]; //4.3 求录取人数 for(int i=1;i<=n;i++){ if(b[i]>=c)d++; else break; } //5、输出 //5.1 输出录取分数线和录取人数 cout<<c<<" "<<d<<endl; //5.2 输出进入面试人的编号和成绩,按成绩从高到低排序 for(int i=1;i<=d;i++)cout<<a[i]<<" "<<b[i]; return 0; }
- 1