c语言构建一个结构体实现删除元素的功能
时间: 2023-12-16 21:02:27 浏览: 63
list用remove实现结构体成员的删除
可以使用结构体数组来实现删除元素的功能。具体实现如下:
```c
#include <stdio.h>
#define MAX_SIZE 100
typedef struct {
int id;
char name[20];
int age;
} Student;
void delete(Student students[], int size, int id) {
int i, j;
for (i = 0; i < size; i++) {
if (students[i].id == id) {
for (j = i; j < size - 1; j++) {
students[j] = students[j + 1];
}
size--;
printf("删除成功!\n");
return;
}
}
printf("未找到该学生!\n");
}
int main() {
Student students[MAX_SIZE] = {
{1, "张三", 18},
{2, "李四", 19},
{3, "王五", 20},
{4, "赵六", 21},
{5, "钱七", 22},
};
int size = 5;
int id;
printf("请输入要删除的学生的 ID:");
scanf("%d", &id);
delete(students, size, id);
for (int i = 0; i < size - 1; i++) {
printf("学生ID:%d,姓名:%s,年龄:%d\n", students[i].id, students[i].name, students[i].age);
}
return 0;
}
```
在 `delete` 函数中,首先遍历结构体数组,找到要删除的学生的 ID 所在的位置,然后将该位置后面的元素向前移动一位,最后将数组长度减一。如果未找到该学生,则输出未找到该学生的提示信息。在主函数中,先输入要删除的学生的 ID,然后调用 `delete` 函数进行删除操作,并输出删除后的学生信息。
阅读全文