c语言有n个学生,每人有m门课程的分数。1.找出总分最高的学生号,2.找出至少有一门课分数不及格的学生号并输出其所有分数,3.统计每门分数都在85分以上的学生人数
时间: 2024-03-18 07:40:39 浏览: 48
好的,我来回答你的问题。
1. 找出总分最高的学生号的算法如下:
```c
int max_sum = 0;
int max_index = 0;
for (int i = 0; i < n; i++) {
int sum = 0;
for (int j = 0; j < m; j++) {
sum += scores[i][j];
}
if (sum > max_sum) {
max_sum = sum;
max_index = i;
}
}
printf("总分最高的学生号是:%d\n", max_index);
```
其中,`scores` 是一个二维数组,存储了所有学生的成绩。`n` 表示学生的数量,`m` 表示每个学生的科目数。
2. 找出至少有一门课分数不及格的学生号并输出其所有分数的算法如下:
```c
for (int i = 0; i < n; i++) {
int fail = 0;
for (int j = 0; j < m; j++) {
if (scores[i][j] < 60) {
fail = 1;
break;
}
}
if (fail) {
printf("学生 %d 的所有分数为:", i);
for (int j = 0; j < m; j++) {
printf("%d ", scores[i][j]);
}
printf("\n");
}
}
```
其中,`fail` 表示该学生是否有不及格的科目。
3. 统计每门分数都在85分以上的学生人数的算法如下:
```c
int count = 0;
for (int j = 0; j < m; j++) {
int all_pass = 1;
for (int i = 0; i < n; i++) {
if (scores[i][j] < 85) {
all_pass = 0;
break;
}
}
if (all_pass) {
count++;
}
}
printf("每门分数都在85分以上的学生人数为:%d\n", count);
```
其中,`all_pass` 表示该科目所有学生是否都及格。
阅读全文