- 招生录取问题;研究生招考分为两个阶段:笔试(满分 500)和面试(满分 100)。总成绩计算方法为笔试成绩除以 5 再加上面试成绩。录取首先要求两项成绩均及格(60%),再按照总成绩从高到底录取;如果总成绩相同,面试成绩高者优先。已知报考的 n 名学生的编号、笔试成绩和面试成绩,如果要录取 k 人,请确定录取哪些人及录取分数线。
#include<iostream> #include<cmath> #include<stdlib.h> #include<iomanip> using namespace std; int main() { cout<<"输入学生编号、笔试成绩、面试成绩:"<<endl; struct student { int ID; float TWE; float ARI; float sum; }st[11];//定义并输入结构体 for (int i=1;i<=10;i++) { cin>>st[i].ID>>st[i].TWE>>st[i].ARI; st[i].sum=st[i].TWE/5+st[i].ARI; } student t,t_1; for(int i=1;i<=9;i++) { for(int j=i+1;j<=10;j++) { if(st[i].sum<st[j].sum) { t=st[i]; st[i]=st[j]; st[j]=t; }//结构体按照总成绩排序 else if (abs(st[i].sum-st[j].sum)<1E-6&&st[i].ARI<st[j].ARI) { t=st[i]; st[i]=st[j]; st[j]=t; }//总成绩相等时按面试成绩高低排序 } } for (int i=1;i<=10;i++) { if (st[i].TWE<5*60||st[i].ARI<60) {//筛选出有一门或两门都不及格的人 t_1=st[i];//将其挑选出来并赋值与t_1 for(int j=i+1;j<=10;j++) { st[j-1]=st[j]; }//将其后面的值依次提前 st[10]=t_1;//将其排到最后 } } int k; cout<<"请输入录取人数:"; cin>>k; cout<<"录取学生编号为:"; for(int b=1;b<=k;b++) { { cout<<st[b].ID<<" ";//输出编号 } } cout<<endl; cout<<"总成绩"<<st[k].sum<<"("<<"面试"<<st[k].ARI<<")"; return 0; }
用C++解决招生录取问题
最新推荐文章于 2024-08-20 16:47:30 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)