c语言输入10个学生5门课的成绩,分别用函数求:(1)每个学生的平均分;(2)每门课的平均分;(3)找出平均分最高的学生。
时间: 2023-11-20 18:04:41 浏览: 508
好的,这是一个关于 C 语言的问题,我会尽力回答。
首先,我们需要定义一个二维数组来存储学生的成绩,代码如下:
```c
float scores[10][5]; // 10个学生,每个学生5门课的成绩
```
然后,我们需要编写三个函数来实现题目要求:
1. 计算每个学生的平均分
```c
float avg_student(int student_index) {
float sum = 0.0;
for (int i=0; i<5; i++) {
sum += scores[student_index][i];
}
return sum / 5.0;
}
```
2. 计算每门课的平均分
```c
float avg_course(int course_index) {
float sum = 0.0;
for (int i=0; i<10; i++) {
sum += scores[i][course_index];
}
return sum / 10.0;
}
```
3. 找出平均分最高的学生
```c
int best_student() {
float max_avg = -1.0;
int best_index = -1;
for (int i=0; i<10; i++) {
float avg = avg_student(i);
if (avg > max_avg) {
max_avg = avg;
best_index = i;
}
}
return best_index;
}
```
最后,我们在主函数中调用这些函数,并输出结果:
```c
int main() {
// 输入成绩
for (int i=0; i<10; i++) {
printf("请输入第%d个学生的5门课成绩:\n", i+1);
for (int j=0; j<5; j++) {
scanf("%f", &scores[i][j]);
}
}
// 计算每个学生的平均分
for (int i=0; i<10; i++) {
printf("第%d个学生的平均分为:%.2f\n", i+1, avg_student(i));
}
// 计算每门课的平均分
for (int i=0; i<5; i++) {
printf("第%d门课的平均分为:%.2f\n", i+1, avg_course(i));
}
// 找出平均分最高的学生
int best_index = best_student();
printf("平均分最高的学生是第%d个学生,平均分为%.2f\n", best_index+1, avg_student(best_index));
return 0;
}
```
希望能够解答您的问题。
阅读全文