九度1002

来源:互联网 发布:arm linux文件系统详解 编辑:程序博客网 时间:2024/04/29 19:19

一道判断题,满分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;}}


0 0