parent
0ca82ec98e
commit
6980d80cd7
@ -0,0 +1,108 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
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;
|
||||
}
|
||||
|
Loading…
Reference in new issue