定义学生结构体包含基本信息,至少含两个科目成绩,再定义一个结构体数组保存5个学生信息,使用指针统计5个学生每门课的总成绩和平均成绩并打印输出
时间: 2024-09-10 12:20:22 浏览: 38
学生成绩信息表(c语言程序).pdf
首先,我们可以定义一个名为`Student`的结构体,包含学生的姓名、学号以及两个科目的成绩。假设我们有两个科目,比如数学和英语。
```c
struct Student {
char name[50];
int student_id;
float math_score;
float english_score;
};
```
接下来,我们需要定义一个`Student`类型的结构体数组,用于存储5个学生的信息。
```c
struct Student students[5] = {
{"张三", 1001, 90.0, 85.0},
{"李四", 1002, 88.0, 92.0},
{"王五", 1003, 92.0, 87.0},
{"赵六", 1004, 85.0, 90.0},
{"刘七", 1005, 95.0, 88.0}
};
```
现在,我们可以使用指针遍历这个数组,并计算每个学生每门课的总成绩和平均成绩。这里,我们将使用一个指向`Student`结构体的指针来操作数组中的元素。
```c
void calculate_scores(struct Student *students, int num_students) {
float total_math = 0.0;
float total_english = 0.0;
for (int i = 0; i < num_students; i++) {
total_math += students[i].math_score;
total_english += students[i].english_score;
}
float avg_math = total_math / num_students;
float avg_english = total_english / num_students;
printf("总分(数学): %.2f, 平均分(数学): %.2f\n", total_math, avg_math);
printf("总分(英语): %.2f, 平均分(英语): %.2f\n", total_english, avg_english);
}
// 调用函数并传入数组和大小
calculate_scores(students, sizeof(students) / sizeof(students[0]));
```
阅读全文