用C语言编写程序,有n个学生,每人有m门课程的分数,要求: (1)找出总分最高的学生号; (2)找出至少有一门课分数不及格的学生号并输出其所有分数:(3)统计每门分数都在85分以上的学生人数。 编写程序,实现 上述功能要求。
时间: 2024-03-26 12:36:15 浏览: 82
好的,让我来为您解答这个问题。
以下是用 C 语言编写程序,完成上述要求的代码:
```c
#include <stdio.h>
#define MAX_STUDENT_NUM 100 // 最大学生数
#define MAX_COURSE_NUM 10 // 最大课程数
void highest_score(int score[MAX_STUDENT_NUM][MAX_COURSE_NUM], int n, int m); // 找出总分最高的学生
void fail_score(int score[MAX_STUDENT_NUM][MAX_COURSE_NUM], int n, int m); // 找出至少有一门课分数不及格的学生并输出其所有分数
void good_score(int score[MAX_STUDENT_NUM][MAX_COURSE_NUM], int n, int m); // 统计每门分数都在85分以上的学生人数
int main() {
int n, m;
int score[MAX_STUDENT_NUM][MAX_COURSE_NUM];
int i, j;
printf("请输入学生数和课程数:");
scanf("%d %d", &n, &m);
// 从键盘输入每个学生的分数
for (i = 0; i < n; i++) {
printf("请输入第%d个学生的%d门课成绩:", i + 1, m);
for (j = 0; j < m; j++) {
scanf("%d", &score[i][j]);
}
}
// 调用找出总分最高的学生函数
highest_score(score, n, m);
// 调用找出至少有一门课分数不及格的学生函数
fail_score(score, n, m);
// 调用统计每门分数都在85分以上的学生人数函数
good_score(score, n, m);
return 0;
}
// 找出总分最高的学生
void highest_score(int score[MAX_STUDENT_NUM][MAX_COURSE_NUM], int n, int m) {
int max_sum = 0, max_index = 0;
int i, j, sum;
for (i = 0; i < n; i++) {
sum = 0;
for (j = 0; j < m; j++) {
sum += score[i][j];
}
if (sum > max_sum) {
max_sum = sum;
max_index = i;
}
}
printf("总分最高的学生是%d号,他的总分是%d分。\n", max_index + 1, max_sum);
}
// 找出至少有一门课分数不及格的学生并输出其所有分数
void fail_score(int score[MAX_STUDENT_NUM][MAX_COURSE_NUM], int n, int m) {
int i, j;
int fail_flag;
printf("以下学生至少有一门课程分数不及格:\n");
for (i = 0; i < n; i++) {
fail_flag = 0;
for (j = 0; j < m; j++) {
if (score[i][j] < 60) {
fail_flag = 1;
break;
}
}
if (fail_flag == 1) {
printf("学生%d的各门课程成绩为:", i + 1);
for (j = 0; j < m; j++) {
printf("%d ", score[i][j]);
}
printf("\n");
}
}
}
// 统计每门分数都在85分以上的学生人数
void good_score(int score[MAX_STUDENT_NUM][MAX_COURSE_NUM], int n, int m) {
int i, j;
int good_count;
printf("每门分数都在85分以上的学生人数:\n");
for (j = 0; j < m; j++) {
good_count = 0;
for (i = 0; i < n; i++) {
if (score[i][j] >= 85) {
good_count++;
}
}
printf("第%d门课程有%d位学生分数都在85分以上。\n", j + 1, good_count);
}
}
```
在上面的代码中,我们定义了三个函数,分别是 `highest_score()`、`fail_score()` 和 `good_score()`,用于完成题目要求的三个任务。在 `main()` 函数中,我们从键盘输入每个学生的分数,然后调用这三个函数,分别输出结果。
需要注意的是,我们通过二维数组 `score` 来存储每个学生的分数,其中第一维表示学生的编号,第二维表示课程的编号。在函数调用时,我们将这个数组传递给函数,并同时传递学生数 `n` 和课程数 `m`。
以上就是用 C 语言编写程序,完成上述要求的代码,希望能对您有所帮助。
阅读全文