PAT B1061判断题

题目描述:

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

输入格式:

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

 

解题思路:1、将每道题的分数以及正确答案使用数组存储起来,输入的时候初始化;学生总成绩也存储在数组中;

     2、输入N个学生的成绩并跟正确答案比对,正确的话就在学生成绩数组中对应的学生编号的总成绩加上当前题目的成绩

     3、遍历输出学生成绩

#include<iostream>

using namespace std;

int score [102];
int right_answer [102];
int student_socre [100] = {0};

int main () {
    int N, M;
    cin >> N >> M;
    //初始化试题分值数组
    for ( int i = 0; i < M; i++ ) {
        cin >> score [i];
    }
    //初始化正确答案数组
    for ( int i = 0; i < M; i++ ) {
        cin >> right_answer [i];
    }
    //计算学生分数
    for ( int i = 0; i < N; i++ ) {
        //共有N个学生
        for ( int j = 0; j < M; j++ ) {
            //每个学生共有M个题的答案
            int stu_answer;
            cin >> stu_answer;
            if ( stu_answer == right_answer [j] ) {
                //学生答案正确的情况,学生成绩加上当前题的分数
                student_socre [i] += score [j];
            }
        }
    }

    //输出学生成绩
    for ( int i = 0; i < N; i++ ) {
        printf ( "%d\n", student_socre [i] );
    }
    system ( "pause" );
    return 0;
}

 

posted @ 2020-04-03 22:41  做个读书人  阅读(138)  评论(0编辑  收藏  举报