一.题目描述
二.题目分析
利用循环进行比较即可
三.代码解答
#include<iostream>
#include<vector>
using namespace std;
int main() {
int n; //学生人数
int m; //题目数量
cin >> n >> m;
vector<int> point(m); //题目分值
vector<int> answer(m); //正确答案
for (int i = 0; i < m; i++) { //输入分值
cin >> point[i];
}
for (int i = 0; i < m; i++) { //输入正确答案
cin >> answer[i];
}
vector<vector<int>> student;
vector<int> vec;
int temp ;
for (int i = 0; i < n; i++) { //二维数组(学生分数的输入)
vec.clear();
for (int j = 0; j < m; j++) {
cin >> temp;
vec.push_back(temp);
}
student.push_back(vec);
}
vector<int> res(n);
for (int i = 0; i < n; i++) {
int grade = 0;
for (int j = 0; j < m; j++) {
if (student[i][j] == answer[j]) { //如果答案相同
grade = grade + point[j]; //分数累加
}
else continue;
}
cout << grade << endl;
}
return 0;
}