这道题的大概意思事:考试评分的过程:首先输入一个成绩P和允许误差T,然后再让G1,G2评分,如果G1和G2评分之间的误差小于T,则G1和G2之间的平均值就是最终的分数;如果G1和G2之间的分数差大于T,则再让G3评分;如果G3是和G1或者G2中间的某一个之间的误差小于T,则最终的结果取G3和该值的平均值;如果G3同时和G1和G2之间的误差都小于T,最终的结果则取G1,G2,G3的最大值;如果G3和G1与G2之间的误差都大于T,则再让另外一个人GJ打分作为最后的分数。
依次输入:P,T,G1,G2,G3,GJ
输出最终的成绩
1 #include2 #include 3 #include 4 #include 5 using namespace std; 6 int main(){ 7 int P,T,G1,G2,G3,GJ; 8 double grade; 9 while(cin>>P){10 cin>>T>>G1>>G2>>G3>>GJ;11 if(T<0 || T>=P || G1<0 || G1>P || G2<0 || G2>P || G3<0 || G3>P || GJ<0 || GJ>P){ 12 continue;13 }14 if(abs(G1-G2)<=T){15 grade=(double)(G1+G2)/2;16 }else if(abs(G1-G3)<=T && abs(G2-G3)<=T){17 grade=G1>G3?(double)G1:(double)G3;18 grade=grade>G2?grade:(double)G2;19 }else if(abs(G1-G3)<=T && abs(G2-G3)>T){20 grade=(double)(G1+G3)/2;21 }else if(abs(G2-G3)<=T && abs(G1-G3)>T){22 grade=(double)(G2+G3)/2;23 }else {24 grade=(double)GJ;25 }26 cout <
这道题™不难,只要理清思路就很容易做出来,但是仍有两点要注意:
1.结果要保留一位小数,在C++中,结果保留一位小数是通过以下三句代码实现的:
#include//引入头部
cout <
#include就可以了,至于为什么,我也不知道。。。。。。。。。。