使用结构体储存学生信息(包括学号,姓名,3 门课程成绩,总分),要求实现对学生信息修改和删除操作,最多50名学生。
时间: 2024-09-29 15:04:20 浏览: 60
在C语言中,你可以使用结构体(struct)来创建一个表示学生的信息的数据类型。首先,定义一个包含学号、姓名、三门课程成绩以及总分的结构体:
```c
typedef struct {
int student_id;
char name[50];
int course1_score;
int course2_score;
int course3_score;
int total_score; // 总分通常是前三科成绩之和
} StudentInfo;
```
接下来,你需要创建一个数组来存储50个学生的数据,并实现添加、修改和删除功能。这里是一个简化的示例:
```c
#define MAX_STUDENTS 50
StudentInfo students[MAX_STUDENTS]; // 学生信息数组
int num_students = 0; // 当前学生数量
// 添加学生函数
void add_student(StudentInfo new_student) {
if (num_students < MAX_STUDENTS) {
students[num_students] = new_student;
num_students++;
} else {
printf("已达到最大学生数量限制!\n");
}
}
// 修改学生信息函数
void update_student(int id, int course1_score, int course2_score, int course3_score) {
for (int i = 0; i < num_students; i++) {
if (students[i].student_id == id) {
students[i].course1_score = course1_score;
students[i].course2_score = course2_score;
students[i].course3_score = course3_score;
break;
}
}
}
// 删除学生函数
void delete_student(int id) {
for (int i = 0; i < num_students - 1; i++) {
if (students[i].student_id == id) {
memmove(&students[i], &students[i + 1], sizeof(StudentInfo) * (num_students - i - 1));
num_students--;
break;
}
}
}
```
在这个例子中,`add_student`函数用于增加新学生,`update_student`用于更新指定学生的成绩,`delete_student`用于移除指定的学生。请注意,删除操作需要小心处理,因为直接改变数组长度可能会导致内存错误。
阅读全文