C语言写有n个学生,每人考m门课。 (1)找出成绩最高的学生的学号和课程号。 (2)找出有不及格课程的学生的学号及其各门课的全部成绩。 (3)求全部学生全部课程总平均分。
时间: 2023-04-04 15:02:44 浏览: 155
c代码-编程实现:输入10个学生的6门课成绩,分别求出每个学生的平均成绩。
(1) 我可以为您提供一个解决方案:首先,您需要定义一个二维数组来存储每个学生的成绩,然后使用循环语句遍历数组,找到最高分的学生和课程号。具体实现方法可以参考以下代码:
int max_score = 0;
int max_student = 0;
int max_course = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (scores[i][j] > max_score) {
max_score = scores[i][j];
max_student = i;
max_course = j;
}
}
}
printf("成绩最高的学生是%d号,最高分数为%d,所在课程为%d\n", max_student, max_score, max_course);
(2) 同样地,您需要使用循环语句遍历数组,找到有不及格课程的学生,并输出其学号及全部成绩。具体实现方法可以参考以下代码:
for (int i = 0; i < n; i++) {
bool fail = false;
for (int j = 0; j < m; j++) {
if (scores[i][j] < 60) {
fail = true;
break;
}
}
if (fail) {
printf("学生%d的成绩为:", i);
for (int j = 0; j < m; j++) {
printf("%d ", scores[i][j]);
}
printf("\n");
}
}
(3) 您需要先计算每个学生的平均分,然后再计算所有学生的平均分。具体实现方法可以参考以下代码:
double total_score = 0;
for (int i = 0; i < n; i++) {
double sum = 0;
for (int j = 0; j < m; j++) {
sum += scores[i][j];
}
double avg = sum / m;
total_score += avg;
}
double avg_score = total_score / n;
printf("全部学生全部课程总平均分为%.2f\n", avg_score);
阅读全文