给定n位学生m门课程的成绩(n<20,m<10),以及分数线。 统计并输出总分在分教线以上的学生人教。
时间: 2024-02-17 21:04:06 浏览: 67
可以使用二维数组来存储每位学生的m门课程成绩,然后遍历每位学生,计算其总分,最后将总分与分数线进行比较,统计符合条件的学生人数。
以下是Python的示例代码:
```python
n, m = map(int, input().split()) # 输入学生数和课程数
scores = []
for i in range(n):
score = list(map(int, input().split())) # 输入学生成绩
scores.append(score)
cutoff = int(input()) # 输入分数线
count = 0 # 统计符合条件的学生人数
for i in range(n):
total_score = sum(scores[i]) # 计算该学生的总分
if total_score >= cutoff: # 判断总分是否高于等于分数线
count += 1
print(count) # 输出符合条件的学生人数
```
输入示例:
```
4 3
80 90 85
70 60 75
90 95 100
65 80 70
240
```
输出示例:
```
3
```
相关问题
用C给定m位学生n门课程的成绩(m<=20, n<=10) ,以及达标线。统计并输出各门课程的平均分在达标线以上的学生人数。【输入格式】第一行包含2个整数,表示学生数m和课程数n;接下来有m行,每行包含n个正整数,表示1位学生的n门课程的成绩。最后一行包含一个整数,为达标线。
好的,这是一个关于统计学生成绩的问题。根据您提供的信息,我们可以使用以下的C代码实现:
```c
#include <stdio.h>
#define MAX_M 20
#define MAX_N 10
int main() {
int m, n, line, i, j, count;
int scores[MAX_M][MAX_N];
double avg[MAX_N];
scanf("%d%d", &m, &n);
for (i = 0; i < m; ++i) {
for (j = 0; j < n; ++j) {
scanf("%d", &scores[i][j]);
}
}
scanf("%d", &line);
for (j = 0; j < n; ++j) {
double sum = 0.0;
count = 0;
for (i = 0; i < m; ++i) {
if (scores[i][j] >= line) {
sum += scores[i][j];
++count;
}
}
avg[j] = sum / count;
}
for (j = 0; j < n; ++j) {
count = 0;
for (i = 0; i < m; ++i) {
if (scores[i][j] >= line) {
++count;
}
}
printf("%d\n", count);
}
return 0;
}
```
该程序使用了一个二维数组`scores`来存储学生的成绩,数组的行数为学生数m,列数为课程数n。然后我们读入每个学生的成绩,并记录达标线。接下来,我们统计并输出各门课程的平均分在达标线以上的学生人数。具体来说,我们先使用一个循环计算每门课程的平均分,并将结果存入数组`avg`中。然后再使用另一个循环计算每门课程平均分在达标线以上的学生人数,并输出结果。
用C给定m位学生n门课程的成绩(m<=20, n<=10) ,以及达标线。统计并输出各门课程的平均分在达标线以上的学生人数。【输入格式】第一行包含2个整数,表示学生数m和课程数n;接下来有m行,每行包含n个正整数,表示1位学生的n门课程的成绩。最后一行包含一个整数,为达标线。【输出格式】一个整数,表示平均分在达标线以上的学生人数。
以下是用C语言实现该问题的代码:
```c
#include <stdio.h>
int main() {
int m, n;
scanf("%d %d", &m, &n);
int scores[m][n];
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &scores[i][j]);
}
}
int passLine;
scanf("%d", &passLine);
int passCount = 0;
for (int j = 0; j < n; j++) {
double sum = 0;
for (int i = 0; i < m; i++) {
sum += scores[i][j];
}
double avg = sum / m;
if (avg >= passLine) {
passCount++;
}
}
printf("%d", passCount);
return 0;
}
```
该程序的思路如下:
1. 读入学生数m和课程数n,以及每个学生的n门课程成绩,存储在二维数组scores中。
2. 读入达标线passLine。
3. 遍历每门课程的成绩,计算平均分并统计平均分在达标线以上的学生人数。
4. 输出平均分在达标线以上的学生人数。
希望对你有所帮助!