输入在第一行给出两个不超过 100 的正整数 n 和 m,分别是学生人数和判断题数量。第二行给出 m 个不超过 5 的正整数,是每道题的满分值。第三行给出每道题对应的正确答案,0 代表“非”,1 代表“是”。随后 n 行,每行给出一个学生的解答。数字间均以空格分隔。
时间: 2023-03-19 22:28:49 浏览: 103
题目描述:
输入两个正整数n和m,分别表示学生人数和判断题数量。接下来一行输入m个正整数,表示每道题的满分值。再接下来一行输入m个数字,表示每道题的正确答案。最后n行输入每个学生的解答,每行m个数字,表示该学生对每道题的答案。
解题思路:
首先读入n和m,以及每道题的满分值和正确答案。然后循环n次,读入每个学生的答案,并计算该学生的总分。最后输出每个学生的总分。
参考代码:
相关问题
输入在第一行给出两个不超过 100 的正整数 n 和 m,分别是学生人数和判断题数量。第二行给出 m 个不超过 5 的正整数,是每道题的满分值。第三行给出每道题对应的正确答案,0 代表“非”,1 代表
### 回答1:
“是”。接下来n行,每行给出一个学生的解答。数字间均以空格分隔。
输出在一行中输出每个学生的得分,题目间以空格分隔。题目按照输入的顺序输出。
样例输入:
5 6
3 2 1 5 4 6
1 1 1 1
1 1 1
1 1 1
1 1 1 1 1
1 1
1 1 1
样例输出:
17 9 15 19 14
解释:
第一个学生得分为:3++1+5++8=17
第二个学生得分为:++1++4+4=9
第三个学生得分为:3++1++4+7=15
第四个学生得分为:3+2+1++4+9=19
第五个学生得分为:3++++4+=14
### 回答2:
这是一道考场题目,要求我们计算每个学生的得分。首先,我们可以用一个二维数组存储每个学生对每道题的答案,数组的行数为学生人数,列数为判断题数量。然后,再用一个一维数组存储每道题的满分值。再读入每道题对应的正确答案,即可开始计算每个学生的得分。具体来说,对于每个学生,遍历每道题的答案,如果该题的答案与正确答案相同,则累加该题的满分值,否则不加分,最终输出每个学生的得分即可。需要注意的是,题目中给出的正确答案是 0 和 1,但是我们应该将其转换为 bool 或 int 类型,以方便比较。以下是示例代码:
```cpp
#include <iostream>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
int score[m];
for (int i = 0; i < m; i++) {
cin >> score[i];
}
bool answer[m];
for (int i = 0; i < m; i++) {
cin >> answer[i];
}
int totalScore = 0;
for (int i = 0; i < n; i++) {
int studentScore = 0;
for (int j = 0; j < m; j++) {
bool ans;
cin >> ans;
if (ans == answer[j]) {
studentScore += score[j];
}
}
cout << studentScore << endl;
totalScore += studentScore;
}
cout << totalScore << endl;
return 0;
}
```
### 回答3:
这道题目需要读入2个整数n和m,分别表示学生人数和题目数。接着需要读入m个不超过5的正整数,表示每道题的分值。最后读入每道题的正确答案。
为了解决该问题,我们需要首先读入学生的答案,即n行m个01字符串。对于每个学生的答案,我们需要计算他的总分数。具体来说,我们可以遍历题目(对于每个题目i),统计每个学生的第i个答案是否正确,如果正确,则累加上该题目的满分值。
最后,我们遍历所有学生的总分数,打印出“学生i的得分是j”的信息。
以下是该问题的python3实现:
n, m = map(int, input().split())
scores = list(map(int, input().split()))
answers = list(map(int, input().split()))
student_scores = []
for i in range(n):
student_answers = list(map(int, input().split()))
student_score = sum([scores[j] * (answers[j] == student_answers[j]) for j in range(m)])
student_scores.append(student_score)
for i in range(n):
print("学生%d的得分是%d" % (i+1, student_scores[i]))
上述代码中,我们先读入输入数据,然后遍历每个学生的答案,计算每个学生的总分数,并保存在student_scores数组中。最后,我们依次输出每个学生的得分。
判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。\n\n输入格式:\n输入在第一行给出两个不超过 100 的正整数 n 和 m,分别是学生人数和判断题数量。第二行给出 m
### 回答1:
个不超过 100 的正整数,表示每道判断题的正确答案,其中 1 表示正确, 表示错误。随后 n 行,每行给出一个学生的解答,其中 表示该生选择“错误”,1 表示该生选择“正确”,数字间以空格分隔。\n\n输出格式:\n按照输入的顺序输出每个学生的得分,每个分数占一行,输出小数点后 1 位。
### 回答2:
题的答案,其每个字符用空格分开,'T'表示正确,'F'表示错误。\n接下来n行,每行给出一个学生的解答,其每个字符也用空格分开,'T'表示正确,'F'表示错误。\n输出格式:\n在一行中输出学生们的得分,其间用空格分隔,最后一个答案后也要有空格。注意判断题的满分是m分。\n输入样例:\n4 5\nT F T T F\nT F T F F\nT T F T F\nT F T F F\n输出样例:\n3 2 2 2 '
题目应该是要求我们编写一个程序,用于自动批阅判断题并生成每个学生的得分统计表。具体步骤如下:
1. 读入 n 和 m,表示学生人数和判断题数量;
2. 读入 m 个字符,表示判断题的答案;
3. 循环 n 次,每次读入一个字符串,并计算该学生的得分;
4. 把学生得分加入一个列表中;
5. 输出得分列表。
具体实现见下面的 Python 代码:
```
n, m = map(int, input().split()) # 读入 n 和 m
ans = input().split() # 读入答案
scores = [] # 初始化得分列表
for i in range(n):
line = input().split() # 读入一行学生答案
score = 0 # 初始化该学生的得分
for j in range(m):
if line[j] == ans[j]: # 判断答案是否正确
score += 1 # 如果正确,则加 1 分
scores.append(str(score)) # 把该学生的得分加入列表中(转成字符串)
print(' '.join(scores)) # 输出得分列表,用空格分隔
```
这个程序首先读入 n 和 m,然后读入 m 个字符,表示判断题的答案。接下来循环 n 次,每次读入一个字符串,并计算该学生的得分。得分的计算方法是,逐个比较学生答案和正确答案,如果相同则得分加 1。最后把每个学生的得分加入一个列表中,并输出得分列表。
注意,得分列表中的每个分数都要转成字符串形式。输出时,用 join 函数把得分列表中的所有元素用空格连接起来即可。
### 回答3:
题目的标准答案,其中 T 表示正确, F 表示错误。随后 n 行,每行给出一个学生的解答,格式为一个长度为 m 的字符串,其中第 i 个字符表示该学生对第 i 道判断题的解答,同样 T 表示正确, F 表示错误。\n\n输出格式:\n首先按照输入给出的题目顺序输出每道题的得分情况,即对于每道题,给出错误选项和正确选项的人数,格式为2个数字,中间用空格分开。然后按照学生输入的顺序输出每个学生的总分,格式为一个数字。\n\n输入样例:\n`
3 5\nTFFTTF\nTFTFTF\nTTFTTT\n\nFFFTT\nTFTFF\nTTFTT\n` \n输出样例:\n
1 2\n2 1\n3 0\n4 0\n5 2\n2\n1\n3\n` \n#### 题解 \n这道题还是比较容易的一道,应该是蓝桥杯里面的一道C语言或者Python中最短代码的题目之一(详见各个社区中的讨论)。\n 我们可以使用两个列表维护正确和错误的答案个数,也可以使用一个字典来存储,本人认为字典的方法最为优美。当然,代码风格和习惯不同,大佬们的代码是都是不一样的,还是需要结合自己的情况来编写程序。\n \n下面是本人用Python编写的代码: