PAT 乙级 1062.判断题 C++/Java
判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。
输入格式:
输入在第一行给出两个不超过 100 的正整数 N 和 M,分别是学生人数和判断题数量。第二行给出 M 个不超过 5 的正整数,是每道题的满分值。第三行给出每道题对应的正确答案,0 代表“非”,1 代表“是”。随后 N 行,每行给出一个学生的解答。数字间均以空格分隔。
输出格式:
按照输入的顺序输出每个学生的得分,每个分数占一行。
输入样例:
3 6
2 1 3 3 4 5
0 0 1 0 1 1
0 1 1 0 0 1
1 0 1 0 1 0
1 1 0 0 1 1
输出样例:
13
11
12
C++实现:
1 #include <iostream> 2 #include <vector> 3 using namespace std; 4 5 int main() { 6 int n, m, t; 7 cin >> n >> m; 8 vector<int> full(m); 9 vector<int> choose(m); 10 for (int i = 0; i < m; i++) { 11 cin >> full[i]; 12 } 13 for (int i = 0; i < m; i++) { 14 cin >> choose[i]; 15 } 16 for (int i = 0; i < n; i++) { 17 int score = 0; 18 for (int j = 0; j < m; j++) { 19 cin >> t; 20 if (t == choose[j]) { 21 score += full[j]; 22 } 23 } 24 cout << score << endl; 25 } 26 return 0; 27 }
Java实现:
1 import java.util.Scanner; 2 3 public class Main { 4 public static void main(String[] args) { 5 Scanner input = new Scanner(System.in); 6 int n = input.nextInt(); 7 int m = input.nextInt(); 8 int[] score = new int[m]; 9 int[] answer = new int[m]; 10 for (int i = 0; i < m; i++) { 11 score[i] = input.nextInt(); 12 } 13 for (int i = 0; i < m; i++) { 14 answer[i] = input.nextInt(); 15 } 16 int[][] stu = new int[n][m]; 17 for (int i = 0; i < n; i++) { 18 for (int j = 0; j < m; j++) { 19 stu[i][j] = input.nextInt(); 20 } 21 } 22 for (int i = 0; i < n; i++) { 23 int sum = 0; 24 for (int j = 0; j < m; j++) { 25 if (stu[i][j] == answer[j]) { 26 sum += score[j]; 27 } 28 } 29 System.out.println(sum); 30 } 31 } 32 }