简洁易懂带注释题解
2025-08-03 16:50:13
发布于:上海
10阅读
0回复
0点赞
#include<iostream>
#include<iomanip>  
using namespace std;
int n, m;  // n表示学生数量,m表示查询数量
// 定义学生结构体,包含姓名、学号、语文成绩、数学成绩
struct stu {
    string name;
    int num;
    int cn, mat;  // cn为语文成绩,mat为数学成绩
} a[101]; 
string s, na;  // s存储查询类型,na存储查询的姓名
int nu;        // nu存储查询的学号
int main() {
    cin >> n >> m;
    for (int i = 0; i < n; i++) {
        cin >> a[i].name >> a[i].num >> a[i].cn >> a[i].mat;
    }
    // 处理每个查询
    for (int i = 0; i < m; i++) {
        cin >> s;  // 读取查询类型("name"或"number")
        if (s == "name") {  // 如果查询类型是按姓名查询
            cin >> na;  // 读取要查询的姓名
            // 遍历学生数组,查找匹配姓名的学生
            for (int j = 0; j < n; j++) {
                if (a[j].name == na) {
                    // 输出该学生的语文和数学成绩
                    cout << a[j].cn << " " << a[j].mat << endl;
                    break;  
                }
            }
        } else {  // 如果查询类型是按学号查询
            cin >> nu;  // 读取要查询的学号
            // 遍历学生数组,查找匹配学号的学生
            for (int j = 0; j < n; j++) {
                if (a[j].num == nu) {
                    // 计算并输出该学生的语文和数学平均成绩,保留两位小数
                    cout << fixed << setprecision(2) << (a[j].cn + a[j].mat) / 2.0 << endl;
                    break;  // 输出后退出循环
                }
            }
        }
    }
    return 0; 
}
全部评论 1
制作不易,留赞后去
2025-08-03 来自 上海
0






有帮助,赞一个