1061 判断题 (15分)
原题链接:传送门
一、题目:
判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。
输入格式:
输入在第一行给出两个不超过 100 的正整数 N 和 M,分别是学生人数和判断题数量。第二行给出 M 个不超过 5 的正整数,是每道题的满分值。第三行给出每道题对应的正确答案,0 代表“非”,1 代表“是”。随后 N 行,每行给出一个学生的解答。数字间均以空格分隔。
输出格式:
按照输入的顺序输出每个学生的得分,每个分数占一行。
输入样例 1:
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
输出样例 1:
13
11
12
二、解析:
思路:
1.先创两个数组,一个放获得答案的分数,一个放正确答案。
2.循环输入n个学生的成绩和m个题目数。
3.学生循环输入答案,输入一个答案则从数组中判断一次,如果答案正确,那么获取这题的分数,并且增加这个学生总的成绩,当这个学生输入完所有答案,那么将成绩输出。
AC代码:
import java.util.Scanner;
/**
* 1061 判断题 (15 分)
*
* @author: Sheng
* @date: 2019年11月28日 下午7:48:52
*/
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int n = s.nextInt();
int m = s.nextInt();
int[] scores = new int[m];
int[] rightAnswer = new int[m];
for (int i = 0; i < m; i++) {
scores[i] = s.nextInt();
}
for (int i = 0; i < m; i++) {
rightAnswer[i] = s.nextInt();
}
// n个学生
for (int i = 0; i < n; i++) {
int currentScore = 0;
// 学生输入的答案
for (int j = 0; j < m; j++) {
int answer = s.nextInt();
// if 答案正确
if (answer == rightAnswer[j]) {
currentScore+=scores[j];
}
}
System.out.println(currentScore);
}
}
}