题目1002:Grading(简单判断)

问题来源

  http://ac.jobdu.com/problem.php?pid=1002

问题描述

题目背景为高考试卷批改打分制度。
对于每一道题,至少需要两位评审老师进行打分, 当两个老师的打分结果相差在可接受范围内,那么该题最终得分为两位老师所给分数的平均分。
当打分相差较大超过可接受范围时,需要第三位评审老师打分。
如果第三位评审老师所给分数之和其中一位老师所给分数相差在可接受范围内, 则最终分数为这两位老师所给分数的平均分。
如果第三位老师所给分数和前面两位老师所给分数之差均为可接受范围内, 则最终分数取三位老师所给分数的最高分。
如果第三位老师所给分数和前面两位所给分数之差均超过可接受范围, 则需要第四位评审老师给出分数,最终分数为第四位老师所给分数。

问题分析

  原题目为英文,看懂题目就很简单了,一个一个分别判断。注意使用类型为double。并要注意输出精确到小数点后一位,使用printf("%.1lf ",ans);

参考代码

//
// Created by AlvinZH on 2017/4/24.
// Copyright (c) AlvinZH. All rights reserved.
//

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;

int main()
{
    double P,T,G1,G2,G3,GJ,ans;
    while(~scanf("%lf %lf %lf %lf %lf %lf",&P,&T,&G1,&G2,&G3,&GJ))
    {
        if(fabs(G1-G2)<=T) ans=(G1+G2)/2;
        else if(fabs(G3-G1)<=T&&fabs(G3-G2)>T) ans=(G3+G1)/2;
        else if(fabs(G3-G2)<=T&&fabs(G3-G1)>T) ans=(G3+G2)/2;
        else if(fabs(G3-G1)<=T&&fabs(G3-G2)<=T) ans=max(G1,max(G2,G3));
        else ans=GJ;

        printf("%.1lf
",ans);
    }
    return 0;
}

作者: AlvinZH

出处: http://www.cnblogs.com/AlvinZH/

本人Github:https://github.com/Pacsiy/JobDu

本文版权归作者AlvinZH和博客园所有,欢迎转载和商用,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

原文地址:https://www.cnblogs.com/AlvinZH/p/6759757.html