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

作业社区

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

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; }

得分 100
学习任务

胡汉三66 的学生作业:

#include /* See NOTES */ #include // socket() sendto() #include #include // inet_addr() htons() #include // memset() #include // fgets() #include // close() #include // exit() void send_data(int sockfd,struct sockaddr_in *addr,int len){ int n = 0; char buf[1024] = {0}; FILE *file = fopen("log.txt","r"); // 以 只读模式 打开 "log.txt" 文件 if(file == NULL){ perror("Failed to open file"); exit(EXIT_FAILURE); } while(1){ memset(buf,0,sizeof(buf)); // 重置 buf空间为 0 if(fgets(buf,sizeof(buf),file) == NULL){ // 获取 文件中"log.txt"信息 保存到 buf中 break; // 如果 文件读取为空, 跳出 while循环 } buf[strlen(buf) - 1] = '\0'; // '\n'--->'\0' n = sendto(sockfd,buf,strlen(buf),0,(struct sockaddr *)addr,len); // 发送 buf信息 到目标地址 if(n < 0){ perror("Fail to sendto"); fclose(file); // 关闭 文件指针 exit(EXIT_FAILURE); } } fclose(file); // 关闭 文件指针 return ; } // ./a.out ip port int main(int argc, const char *argv[]) { int sockfd; struct sockaddr_in peer_addr; // 目标地址结构体 int len = sizeof(peer_addr); if(argc != 3){ fprintf(stderr,"Usage : %s ip port!\n",argv[0]); exit(EXIT_FAILURE); } // 1.通过socket创建文件描述符 sockfd = socket(AF_INET,SOCK_DGRAM,0); if(sockfd < 0){ perror("Fail to socket!"); return -1; } // 2.填充服务器的ip + port memset(&peer_addr,0,sizeof(peer_addr)); // 重置 peer_addr空间为 0 peer_addr.sin_family = AF_INET; // 设置 协议族(IP4) peer_addr.sin_port = htons(atoi(argv[2])); // 设置 目标网络端口 peer_addr.sin_addr.s_addr = inet_addr(argv[1]); // 设置 目标网络IP // 3.发送数据 send_data(sockfd,&peer_addr,len); // 4.关闭文件描述符 close(sockfd); return 0; } 【图片】

微信客服

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

帮助反馈 APP下载

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

公众号

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