用C语言编程输入10个学生5门课的成绩,分别用函数求:(1)每个学生的平均分;(2)每门课的平均分;(3)找出平均分最高的学生。
时间: 2023-11-20 19:04:44 浏览: 266
好的,我来为你解答这个问题。
首先,我们需要用C语言编写一个程序来输入10个学生5门课的成绩。可以使用二维数组来存储这些成绩,如下所示:
```
#include <stdio.h>
#define STUDENTS 10
#define COURSES 5
int main() {
int scores[STUDENTS][COURSES];
int i, j;
// 输入成绩
for (i = 0; i < STUDENTS; i++) {
printf("请输入第%d个学生的成绩:\n", i + 1);
for (j = 0; j < COURSES; j++) {
printf("请输入第%d门课的成绩:", j + 1);
scanf("%d", &scores[i][j]);
}
}
return 0;
}
```
接下来,我们需要编写三个函数来求每个学生的平均分、每门课的平均分和平均分最高的学生。
第一个函数用来求每个学生的平均分,可以使用一个循环来遍历每个学生的成绩,并计算他们的平均分,代码如下:
```
float avg_score_student(int scores[][COURSES], int student) {
int i;
float sum = 0;
for (i = 0; i < COURSES; i++) {
sum += scores[student][i];
}
return sum / COURSES;
}
```
第二个函数用来求每门课的平均分,可以使用一个循环来遍历每门课的成绩,并计算它们的平均分,代码如下:
```
float avg_score_course(int scores[][COURSES], int course) {
int i;
float sum = 0;
for (i = 0; i < STUDENTS; i++) {
sum += scores[i][course];
}
return sum / STUDENTS;
}
```
最后一个函数用来找出平均分最高的学生,可以使用一个循环来遍历每个学生的成绩,并计算他们的平均分,然后比较这些平均分,找出最高的那个学生,代码如下:
```
int highest_avg_student(int scores[][COURSES]) {
int i;
float highest_avg = 0;
int highest_student = 0;
for (i = 0; i < STUDENTS; i++) {
float avg = avg_score_student(scores, i);
if (avg > highest_avg) {
highest_avg = avg;
highest_student = i;
}
}
return highest_student;
}
```
最后,我们可以在主函数中调用这些函数,并输出结果,代码如下:
```
#include <stdio.h>
#define STUDENTS 10
#define COURSES 5
float avg_score_student(int scores[][COURSES], int student);
float avg_score_course(int scores[][COURSES], int course);
int highest_avg_student(int scores[][COURSES]);
int main() {
int scores[STUDENTS][COURSES];
int i, j;
// 输入成绩
for (i = 0; i < STUDENTS; i++) {
printf("请输入第%d个学生的成绩:\n", i + 1);
for (j = 0; j < COURSES; j++) {
printf("请输入第%d门课的成绩:", j + 1);
scanf("%d", &scores[i][j]);
}
}
// 求每个学生的平均分
printf("每个学生的平均分:\n");
for (i = 0; i < STUDENTS; i++) {
printf("第%d个学生的平均分为%.2f\n", i + 1, avg_score_student(scores, i));
}
// 求每门课的平均分
printf("每门课的平均分:\n");
for (i = 0; i < COURSES; i++) {
printf("第%d门课的平均分为%.2f\n", i + 1, avg_score_course(scores, i));
}
// 找出平均分最高的学生
int highest = highest_avg_student(scores);
printf("平均分最高的学生是第%d个学生,平均分为%.2f\n", highest + 1, avg_score_student(scores, highest));
return 0;
}
```
这个程序可以实现你的要求。
阅读全文