题解 | #Grading#抄的

Grading

https://www.nowcoder.com/practice/23e3244406724ffa8330760f640c8149

#include <iostream>
#include <iomanip>
using namespace std;

double absminus(double a, double b) {
    if (a >= b)
        return a - b;
    else
        return b - a;
}

double maxdigit(double a, double b, double c) {
    if (a >= b && a >= c)
        return a;
    else if (b >= a && b >= c)
        return b;
    else
        return c;
}

double averageclosest(double a, double b, double c) {
    if (absminus(a, b) >= absminus(a, c))
        return (a + b) / 2;
    else
        return (a + c) / 2;
}

int main() {
    double p, t, g1, g2, g3, gj;
    double finalgrade;
    while (cin >> p >> t >> g1 >> g2 >> g3 >> gj) {
        if (absminus(g1, g2) <= t)
            finalgrade = (g1 + g2) / 2;
        else if ((absminus(g3, g1) <= t) && (absminus(g3, g2) <= t))
            finalgrade = maxdigit(g1, g2, g3);
        else if ((absminus(g3, g1) > t) && (absminus(g3, g2) > t))
            finalgrade = gj;
        else
            finalgrade = averageclosest(g3, g1, g2);
        cout.setf(ios::fixed);
        cout.precision(1);
        cout << finalgrade << endl;
    }
    return 0;
}

全部评论

相关推荐

双尔:反手回一个很抱歉,经过慎重考虑,您与我的预期暂不匹配,感谢您的投递
点赞 评论 收藏
分享
11-03 14:57
西北大学 营销
Belltrix:其实就是每根转动一定的角度
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务