建立一个顺序表表示学生成绩表,学生成绩表包括学号,姓名,数学成绩,英语成绩,平均成绩
时间: 2024-09-18 17:02:00 浏览: 45
定义一个包含学生信息(学号,姓名,成绩)的顺序表
要创建一个顺序表(数组或链表)来表示学生成绩表,我们可以使用结构体(struct)来定义学生信息,然后存储在数组或者动态分配的数据结构中。这里我们先定义一个简单的结构体`Student`:
```c
#include <stdio.h>
#include <string.h>
// 定义学生结构体
typedef struct {
int student_id; // 学号
char name[50]; // 姓名
float math_score; // 数学成绩
float english_score; // 英语成绩
float average_score; // 平均成绩 (初始化为0)
} Student;
// 初始化平均成绩
void init_average(Student *student) {
student->average_score = (student->math_score + student->english_score) / 2;
}
int main() {
// 创建一个包含5个元素的学生成绩表
const int capacity = 5;
Student students[capacity];
// 初始化学生成绩数据
for (int i = 0; i < capacity; i++) {
printf("请输入第%d位学生的学号、姓名及两门课程的成绩:\n", i+1);
scanf("%d%s%f%f", &students[i].student_id, students[i].name, &students[i].math_score, &students[i].english_score);
// 计算并设置平均成绩
init_average(&students[i]);
}
// 打印学生成绩表
for (int i = 0; i < capacity; i++) {
printf("学号:%d, 姓名:%s, 数学成绩:%f, 英语成绩:%f, 平均成绩:%f\n",
students[i].student_id, students[i].name, students[i].math_score, students[i].english_score, students[i].average_score);
}
return 0;
}
```
在这个例子中,我们使用了顺序数组来存储学生成绩,但如果你需要更大的灵活性(比如动态添加/删除学生),你可以考虑使用链表代替。
阅读全文