代码如下:
import java.util.Scanner; public class Main { public static void main(String args[]) { Scanner sc = new Scanner(System.in); int N=sc.nextInt(); //输入N int M=sc.nextInt(); //输入M int a[][]=new int[N+2][M]; //输入N,M下面的二维数组 for(int i=0;i<N+2;i++) { for(int j=0;j<M;j++) { a[i][j]=sc.nextInt(); } } //计算分数 int score[]=new int[N]; for(int i=2;i<N+2;i++){ for(int j=0;j<M;j++){ if(a[i][j]==a[1][j]) { score[i-2]=score[i-2]+a[0][j]; } //System.out.println(score[i-2]); } } //输出 for(int i=0;i<N;i++) { System.out.println(score[i]); } } }
提交结果如下:
说明:解题思路是对学生1给出答案的每一列和标准答案的每一列按位比较,如果相等,则将该列题目对应的分数加上去。即可得到学生1判断题的总数。学生2,学生3同理。因为在输入二维数组里面第三行才是学生的提交答案,所以计算的时候行下标i从2开始。