某学校的期末考试共有n个学生参加,考试科目共有m科。学校将会给一部分学生颁发单科成绩优秀奖,获奖学生需要满足的条件是某一科的成绩是所有学生中最高的或是最高的之一。请问学校应该给多少名学生颁发单科成绩优秀奖代码 
时间: 2023-04-05 21:02:40 浏览: 31
很高兴回答你的问题。根据题意,我们需要找出每一科的最高分,然后再统计有多少个学生的成绩是最高分或最高分之一。最后将每一科的获奖人数相加即可得到总获奖人数。以下是一份可能的代码:
```
#include <stdio.h>
int main() {
int n, m;
scanf("%d %d", &n, &m);
int max_score[m];
for (int i = 0; i < m; i++) {
max_score[i] = 0;
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
int score;
scanf("%d", &score);
if (score > max_score[j]) {
max_score[j] = score;
}
}
}
int count = 0;
for (int i = 0; i < n; i++) {
int is_winner = 0;
for (int j = 0; j < m; j++) {
int score;
scanf("%d", &score);
if (score == max_score[j]) {
is_winner = 1;
}
}
if (is_winner) {
count++;
}
}
printf("%d\n", count);
return 0;
}
```
这个程序首先读入学生人数和科目数,然后用一个数组 `max_score` 记录每一科的最高分。接下来,程序读入每个学生的成绩,并更新 `max_score` 数组。最后,程序再次读入每个学生的成绩,并统计获奖人数。如果某个学生的成绩是某一科的最高分或最高分之一,那么这个学生就是获奖者。最后输出获奖人数即可。
相关推荐










