问题描述(笔试题,记不太清了只有基本描述):
假设有n个问题, 问题的名字(name),给出参与的人数(X)和答对的人数(Y),难度系数分为三个等级,定义:
0%<=Y/X<=30% 难度为5
30%<=Y/X<60% 难度为4
6%<=Y/X<=100% 难度为3
输入:
n(接下来有n个数据)
name X Y
输出:
对问题进行字典排序 难度系数
样例输入:
3
math 100 90
dl 100 50
English 50 1
样例输出:
dl 4
English 5
math 3
C++代码如下:
- #include<algorithm>
- #include<iostream>
- #include<cstdlib>
- #include<vector>
- #include<cstring>
- using namespace std;
- typedef struct data{
- char clas[101];
- int sub;
- int pas;
- bool operator<(const data &b)const {
- int c=strcmp(clas,b.clas);
- if(c<0)
- return true;
- return false;
- } //定义数据结构
- }data,*pdata;
- data all_data[101];
- int xishu(int sub,int pas){
- double xi=(double)(pas)/(double)(sub);
- if(0<xi<=0.3)
- return 5;
- else if(0.3<=xi<=0.6)
- return 4;
- else if(06<xi<=1)
- return 5;
- } //难度系数计算
- int main(){
- int n;
- scanf("%d",&n);
- for(int i=0;i<n;i++){
- scanf("%s %d %d",all_data[i].clas,
- &all_data[i].sub,&all_data[i].pas);
- }
- sort(all_data,all_data+n); //使用sort函数对问题名字进行排序
- for(int i=0;i<n;i++){
- int ans=xishu(all_data[i].sub,all_data[i].pas);
- printf("%s %d\n",all_data[i].clas,ans);
- }
- return 0;
- }