题解(个人理解
2025-08-18 19:00:02
发布于:浙江
9阅读
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;
}
这里空空如也
有帮助,赞一个