1.找出总分最高的学生号,2.找出至少有一门课分数不及格的学生号并输出其所有分数,3.统计每门分数都在85分以上的学生人数
时间: 2024-03-18 09:45:29 浏览: 65
好的,这里是关于C语言中学生成绩的计算,分别回答你的三个问题:
1.找出总分最高的学生号:
可以通过二维数组来存储每个学生的分数,然后遍历数组求出每个学生的总分并记录最高分数和对应的学生号。以下是示例代码:
```c
#include <stdio.h>
#define MAX_STUDENTS 100
#define MAX_COURSES 10
int main() {
int scores[MAX_STUDENTS][MAX_COURSES];
int n, m, i, j;
int max_score = 0; // 最高总分
int max_student = 1; // 总分最高的学生号
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", &scores[i][j]);
}
}
// 计算每个学生的总分并记录最高分数和对应的学生号
for (i = 0; i < n; i++) {
int total_score = 0;
for (j = 0; j < m; j++) {
total_score += scores[i][j];
}
if (total_score > max_score) {
max_score = total_score;
max_student = i + 1;
}
}
printf("总分最高的学生号为:%d\n", max_student);
return 0;
}
```
在这个示例代码中,我们先定义了一个二维数组 `scores` 来存储每个学生的分数,然后通过循环输入每个学生的分数。接着,我们再次循环计算每个学生的总分,并记录最高分数和对应的学生号。最后输出总分最高的学生号即可。
2.找出至少有一门课分数不及格的学生号并输出其所有分数:
我们可以通过嵌套循环来遍历每个学生的分数,当某个学生的分数中有一门课程不及格时,就输出该学生的所有分数。以下是示例代码:
```c
#include <stdio.h>
#define MAX_STUDENTS 100
#define MAX_COURSES 10
int main() {
int scores[MAX_STUDENTS][MAX_COURSES];
int n, m, i, j;
int has_failed = 0; // 是否有学生不及格
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", &scores[i][j]);
}
}
// 找出至少有一门课分数不及格的学生号并输出其所有分数
for (i = 0; i < n; i++) {
for (j = 0; j < m; j++) {
if (scores[i][j] < 60) {
printf("学生%d分数不及格:", i + 1);
for (j = 0; j < m; j++) {
printf("%d ", scores[i][j]);
}
printf("\n");
has_failed = 1;
break;
}
}
if (has_failed) {
break;
}
}
if (!has_failed) {
printf("所有学生都通过了考试!\n");
}
return 0;
}
```
在这个示例代码中,我们先定义了一个二维数组 `scores` 来存储每个学生的分数,然后通过循环输入每个学生的分数。接着,我们嵌套循环遍历每个学生的分数,当某个学生的分数中有一门课程不及格时,就输出该学生的所有分数。如果所有学生都通过了考试,则输出提示信息。
3.统计每门分数都在85分以上的学生人数:
我们可以通过嵌套循环遍历每个学生的分数,统计每门分数都在85分以上的学生人数。以下是示例代码:
```c
#include <stdio.h>
#define MAX_STUDENTS 100
#define MAX_COURSES 10
int main() {
int scores[MAX_STUDENTS][MAX_COURSES];
int n, m, i, j;
int count = 0; // 统计每门分数都在85分以上的学生人数
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", &scores[i][j]);
}
}
// 统计每门分数都在85分以上的学生人数
for (i = 0; i < n; i++) {
int is_good = 1;
for (j = 0; j < m; j++) {
if (scores[i][j] < 85) {
is_good = 0;
break;
}
}
if (is_good) {
count++;
}
}
printf("每门分数都在85分以上的学生人数为:%d\n", count);
return 0;
}
```
在这个示例代码中,我们先定义了一个二维数组 `scores` 来存储每个学生的分数,然后通过循环输入每个学生的分数。接着,我们嵌套循环遍历每个学生的分数,当某个学生的每门分数都在85分以上时,就将统计值加一。最后输出每门分数都在85分以上的学生人数即可。
阅读全文