题解(个人理解
2025-08-18 19:00:02
发布于:浙江
10阅读
0回复
0点赞
读题:
简化:
- 输入一个数字和一个数字
 - 输入个同学的信息,包括姓名、学号、语文成绩、数学成绩(顺序就是这个)
 - 输入个指令,指令分为两个:
1: 查询名字为的语数成绩
2: 查询学号为的语数平均成绩: 
代码实现:有注释o
#include<bits/stdc++.h>
#define endl '\n'
using namespace std;
int n,m; // n:数据数量 m:查询指令次数
struct node{ // 定义结构体
    string name; // 名字
    int id,chinese,math; // id:学号 chinese:语文成绩 math:数学成绩
};vector<node>ve; // 定义存储数组
signed main() {
    cin >> n >> m; // 输入n,m
    for (int i = 1;i <= n;i++) { // 输入数据
        string name;
        int id,cscore,mscore;
        cin >> name >> id >> cscore >> mscore;
        ve.push_back({name,id,cscore,mscore});
    }while (m--) {
        string op; // 指令名字
        cin >> op; 
        if (op == "name") {// name x指令
            string search_name;
            cin >> search_name; // 输入要查询的名字
            for (auto &it:ve) {// 遍历数据数组(语法:auto &it:数组)
                if (search_name == it.name) {
                    printf("%d %d\n",it.chinese,it.math);
                    break;
                }
            }
        }else { // number y 指令
            int search_id;
            cin >> search_id;
            for (auto &it:ve) {
                if (search_id == it.id) {
                    double average = 0; // 计算语数平均值
                    average += it.chinese;
                    average += it.math;
                    printf("%.2f\n",average / 2.0);
                    break;
                }
            }
        }
    }
    return 0;
}
这里空空如也







有帮助,赞一个