题目:
判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。
输入格式:
输入在第一行给出两个不超过 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
思路:
用学生答案与标准答案做同或的结果乘上该题分数,加到学生总分上。同或可以用异或取反来表示,异或运算符号是 ^ 。
#include<stdio.h>
int main(void){
int N,M,points[100],ans[100];
scanf("%d%d",&N,&M);
for(int i=0;i<M;i++)
scanf("%d",&points[i]);
for(int i=0;i<M;i++)
scanf("%d",&ans[i]);
for(int i=0,j,score,temp;i<N;i++){
for(j=0,score=0;j<M;j++){
scanf("%d",&temp);
score+=!(ans[j]^temp)*points[j];
}
printf("%d\n",score);
}
return 0;
}