简洁易懂带注释题解
2025-08-03 16:50:13
发布于:上海
7阅读
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
制作不易,留赞后去
5天前 来自 上海
0
有帮助,赞一个