用C语言编程有20名学生每名学生有五门课的成绩分别求出每门课的平均成绩和每个学生的平均成绩
时间: 2024-12-09 19:25:42 浏览: 17
在C语言中,我们可以使用数组和结构体来存储学生信息和课程成绩。首先,创建一个结构体`Student`表示一名学生,包含姓名和5门课程的成绩。然后定义一个动态数组`students`来存储所有学生的信息。下面是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 定义学生结构体
typedef struct {
char name[50];
int scores[5]; // 存储5门课程的成绩
} Student;
// 计算单门课程的平均分
double calculateSubjectAverage(int subject_scores[], int count) {
double sum = 0;
for (int i = 0; i < count; i++) {
sum += subject_scores[i];
}
return sum / count;
}
// 计算学生总平均分
double calculateStudentAverage(Student student) {
double total_sum = 0;
for (int i = 0; i < 5; i++) {
total_sum += student.scores[i];
}
return total_sum / 5;
}
int main() {
const int num_students = 20;
Student* students = malloc(num_students * sizeof(Student));
// 分别填充学生数据(这里省略实际输入)
// 可以通过循环和输入函数读取每位学生的姓名和成绩
for (int i = 0; i < num_students; i++) {
printf("学生 %s 的成绩:\n", students[i].name);
for (int j = 0; j < 5; j++) {
printf("%d ", students[i].scores[j]);
}
printf("\n");
double subject_avg = calculateSubjectAverage(students[i].scores, 5);
printf("该生 %s 每门课程的平均成绩: %.2f\n", students[i].name, subject_avg);
double student_avg = calculateStudentAverage(students[i]);
printf("该生 %s 的总平均成绩: %.2f\n\n", students[i].name, student_avg);
}
free(students); // 释放内存
return 0;
}
```
阅读全文