From 6980d80cd7e0db13074ab6e3b6058fe98b4f5d7e Mon Sep 17 00:00:00 2001 From: m7wzyfpis <1040766652@qq.com> Date: Tue, 5 Dec 2023 22:02:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=92=E5=85=A5=E5=92=8C=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- insertanddelete.cpp | 108 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 insertanddelete.cpp diff --git a/insertanddelete.cpp b/insertanddelete.cpp new file mode 100644 index 0000000..5171336 --- /dev/null +++ b/insertanddelete.cpp @@ -0,0 +1,108 @@ +#include +#include + +struct Student { + int studentId; + int classId; + char name[50]; + float scores[3]; +}; + +struct Student students[100]; +int numStudents = 3; // 已有的学生数量 + +void insertStudent(struct Student newStudent) { + int i, j; + + // 检查学号是否已存在 + for (i = 0; i < numStudents; i++) { + if (students[i].studentId == newStudent.studentId) { + printf("已存在学号为%d的学生信息。\n", newStudent.studentId); + return; + } + } + + // 寻找插入位置 + for (i = 0; i < numStudents; i++) { + if (students[i].classId > newStudent.classId || (students[i].classId == newStudent.classId && newStudent.scores[0] + newStudent.scores[1] + newStudent.scores[2] > students[i].scores[0] + students[i].scores[1] + students[i].scores[2])) { + break; + } + } + + // 将插入位置之后的学生向后移动一个位置 + for (j = numStudents - 1; j >= i; j--) { + students[j + 1] = students[j]; + } + + // 插入新的学生信息 + students[i] = newStudent; + numStudents++; + + printf("新的学生信息已插入。\n"); +} + +void deleteStudent(int studentId) { + int i, j; + + // 查找要删除的学生信息的位置 + for (i = 0; i < numStudents; i++) { + if (students[i].studentId == studentId) { + break; + } + } + + // 如果找到了学生信息,则将之后的学生向前移动一个位置 + if (i < numStudents) { + for (j = i + 1; j < numStudents; j++) { + students[j - 1] = students[j]; + } + numStudents--; + printf("学生信息已删除。\n"); + } else { + printf("未找到学号为%d的学生信息。\n", studentId); + } +} + +void printStudents() { + for (int i = 0; i < numStudents; i++) { + printf("%d %d %s %.1f %.1f %.1f\n", students[i].studentId, students[i].classId, students[i].name, students[i].scores[0], students[i].scores[1], students[i].scores[2]); + } +} + +int main() { + // 初始化已有的学生信息 + students[0].studentId = 10001; + students[0].classId = 11; + strcpy(students[0].name, "Zhang"); + students[0].scores[0] = 85; + students[0].scores[1] = 86; + students[0].scores[2] = 90; + + students[1].studentId = 10002; + students[1].classId = 12; + strcpy(students[1].name, "Li"); + students[1].scores[0] = 75; + students[1].scores[1] = 76; + students[1].scores[2] = 77; + + students[2].studentId = 10003; + students[2].classId = 13; + strcpy(students[2].name, "Wang"); + students[2].scores[0] = 95; + students[2].scores[1] = 96; + students[2].scores[2] = 97; + + // 打印所有学生信息 + printStudents(); + + // 插入新的学生信息 + insertStudent((struct Student){10004, 14, "Liu", {88, 90, 92}}); + printStudents(); + + // 删除学生信息 + deleteStudent(10003); + printStudents(); + + return 0; +} +