PAT (Basic Level) Practice (中文)1061 判断题 (15分) java题解

1061 判断题 (15分)

判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。

输入格式: 输入在第一行给出两个不超过 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

思路:因为是简单的判断题,不存在分数不是满分的情况,因此只需要创建3个一位数组,一个用来保存M个题每道题满分分数、一个用来保存正确答案,最后一个用来保存学生输入的答案,通过for循环来遍历数组对比正确答案和学生答案的差别,如果一样则输出分数。

注意:记得在统计分数的时候,输出一个分数就要对总得分进行初始化。

AC代码

import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();  // 学生人数
        int M = sc.nextInt();  // 判断题数量
        int[] answernum = new int[M];
        int sum = 0;
        for(int i=0;i<answernum.length;i++){
            answernum[i] = sc.nextInt();
        }               //M个题每道题满分分数
        int[] answer = new int[M];
        for(int i=0;i<answer.length;i++){
            answer[i] = sc.nextInt();
        }               //正确答案
        for(int i=0;i<N;i++){
            int[] st_answer = new int[M];
            for(int j=0;j<st_answer.length;j++){
                st_answer[j] = sc.nextInt();
            }
            for(int j=0;j<answer.length;j++){
                if(answer[j]==st_answer[j]){
                    sum += answernum[j];
                }
            }
            System.out.println(sum);
            sum = 0; // 注意注意注意!!!!!
        }
    }
}
发布了4 篇原创文章 · 获赞 3 · 访问量 304

猜你喜欢

转载自blog.csdn.net/qq_24254611/article/details/104447669
今日推荐