您的位置:首页 > 其它

九度1002

2016-02-26 23:31 323 查看
一道判断题,满分P,分数差阈值T,一号判卷者给分G1,二号判卷者给分G2,三号判卷者给分G3,主审官给分GJ。

假如|G1-G2|<=T,得分为(G1+G2)/2。

超过分数差阈值将会引入3号判卷者。

有四种情况

如果|G3-G2|<=T&&|G3-G1|>T,得分为(G3+G2)/2

如果|G3-G2|>T&&|G3-G1|<=T,得分为(G3+G1)/2

如果差的绝对值均小于等于T,得分为三者最大值

如果差的绝对值均大于T,得分为主审官给分GJ

用到流成员函数。

cout.setf (iso ::fixed );设置以定点小数输出

cout .precision(1)设置实数精度

设置之后所有的输出默认为设置。如果要取消默认输出

cout.unsetf(iso ::fixed )

设置精度什么的是针对浮点类型的,要转换

#include<iostream>
#include<cstdlib>//abs函数所在库
using namespace std;
int  Max(int G1,int G2,int G3){
int Max=G1;
if(G2>Max){
Max=G2;
}
if(G3>Max){
Max=G3;
}
return Max;
}
int main(){

int  P,T,G1,G2,G3,GJ;
float score;
while(cin>>P>>T>>G1>>G2>>G3>>GJ){//输入各项参数
cout.precision(1);
cout.setf(ios::fixed);

if(abs(G1-G2)<=T){
score=(G1+G2)/2.0;

}else{
if(abs(G3-G1)<=T&&abs(G3-G2)>T){
score=(G3+G1)/2.0;
}else if(abs(G3-G1)>T&&abs(G3-G2)<=T){
score=(G2+G3)/2.0;
}else if(abs(G3-G1)<=T&&abs(G3-G2)<=T){
score=Max(G1,G2,G3)/1.0;
}else
{
score=GJ/1.0;
}
}
cout<<score<<endl;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: