题解 [P5742 【深基7.例11】评等级]

· · 题解

这是一道基础的结构体练习题,没有太多的技巧,甚至不用结构体也能A。

还有一点就是,出题人阴险看清题目,优秀的定义是学业和素质拓展成绩总分大于 140 分,且综合分数不小于(大于等于) 80 分。

也就是判断条件别写错。

上代码:

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
struct node {
    int id;//学号
    double sc1, sc2;//学业成绩和素质拓展成绩
    int score;//学业成绩和素质拓展成绩的和
    double final_score;//综合分数
}a[1000];//结构体定义,由于本人习惯(懒),sc1和sc2定义成了double。
int main() {
    int n;
    cin >> n;
    for(int i=0; i<n; i++) {
        cin >> a[i].id >> a[i].sc1 >> a[i].sc2;
        a[i].score = a[i].sc1 + a[i].sc2;
        a[i].final_score = a[i].sc1 * 0.7 + a[i].sc2 * 0.3;//计算综合分数
    }
    for(int i=0; i<n; i++) {
        if(a[i].score > 140 && a[i].final_score >= 80) {//一定看清题
            cout << "Excellent" << endl;
        }
        else {
            cout << "Not excellent" << endl;
        }
    }
    return 0;
}