为了账号安全,请及时绑定邮箱和手机立即绑定

作业社区

探索学习新天地,共享知识资源!

0 提交作业
0 布置作业
0 满分作业
得分 100
学习任务

浪潮君 的学生作业:

#include #include #define MAX 10 // 顺序表最大容量 // 定义学生结构体 struct student { char name[20]; // 学生姓名 int id; // 学号 int age; // 年龄 }; typedef struct student datatype_t; // 定义顺序表结构体 typedef struct { datatype_t buf[MAX]; // 学生数组,最多存 MAX 个学生 int n; // 实际已有学生个数 } seqlist_t; // 判断顺序表是否为空 int is_empty_seqlist(seqlist_t *l) { return (l->n == 0); } // 删除指定学号的学生(按 id 匹配) int delete_data_seqlist(seqlist_t *l, datatype_t data) { if (l == NULL || l->n == 0) { return -1; // 表为空或非法指针 } int i; for (i = 0; i < l->n; i++) { if (l->buf[i].id == data.id) { // 按学号匹配 break; } } if (i == l->n) { return -2; // 未找到该学生 } // 删除元素:将后面元素前移覆盖当前元素 for (int j = i; j < l->n - 1; j++) { l->buf[j] = l->buf[j + 1]; } l->n--; // 删除后学生数量减 1 return 0; // 删除成功 } // 简单主函数演示 int main() { seqlist_t list = { .n = 0 }; // 初始化顺序表为空 // 添加 3 个学生 list.buf[0] = (datatype_t){"张三", 1001, 18}; list.buf[1] = (datatype_t){"李四", 1002, 19}; list.buf[2] = (datatype_t){"王五", 1003, 20}; list.n = 3; // 打印是否为空 if (is_empty_seqlist(&list)) { printf("顺序表为空\n"); } else { printf("顺序表不为空,目前有 %d 个学生\n", list.n); } // 删除学号为 1002 的学生 datatype_t target = {.id = 1002}; int ret = delete_data_seqlist(&list, target); if (ret == 0) { printf("删除成功!\n"); } else { printf("删除失败,错误码:%d\n", ret); } // 打印剩余学生 for (int i = 0; i < list.n; i++) { printf("学生:%s,学号:%d,年龄:%d\n", list.buf[i].name, list.buf[i].id, list.buf[i].age); } return 0; }

得分 100
学习任务

浪潮君 的学生作业:

#include #include #include #define MAX 10 // 实际学生的存储结构 typedef struct { char name[20]; int id; int age; } datatype_t; typedef struct { datatype_t buf[MAX]; // 应到 int n; // 实到 } seqList_t; // 班级人数 // 创建空的顺序表 seqList_t *create_empty_seqList() { seqList_t *l = (seqList_t *) malloc(sizeof(seqList_t)); if (l != NULL) { l->n = 0; } return l; } // 判断顺序表是否已满 int is_full_seqList(seqList_t *l) { return l->n == MAX; } // 插入数据到顺序表 void insert_data_seqList(seqList_t *l, datatype_t data) { if (is_full_seqList(l)) { printf("顺序表已满,无法插入数据\n"); return; } l->buf[l->n] = data; l->n++; } // 输出顺序表中的所有学生信息 void printf_data_seqList(seqList_t *l) { if (l->n == 0) { printf("顺序表为空。\n"); return; } printf("学生信息列表:\n"); for (int i = 0; i < l->n; i++) { printf("姓名: %s 学号: %d 年龄: %d\n", l->buf[i].name, l->buf[i].id, l->buf[i].age); } } // 主函数测试 int main() { seqList_t *list = create_empty_seqList(); if (list == NULL) { printf("创建顺序表失败\n"); return 1; } // 插入几个学生信息 datatype_t s1 = {"张三", 1001, 18}; datatype_t s2 = {"李四", 1002, 19}; datatype_t s3 = {"王五", 1003, 20}; insert_data_seqList(list, s1); insert_data_seqList(list, s2); insert_data_seqList(list, s3); // 打印所有学生信息 printf_data_seqList(list); // 释放内存 free(list); return 0; }

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号