void zhuxiao(struct student *head) { struct student *p1, *p2; FILE *fp; char num[20]; int flag = 0, j; printf ("输入要注销的学号:\n"); scanf ("%s", &num); p1 = head; p2 = head->next; while (p2) { if (strcmp(p2->num, num) == 0) { printf("输入正确,请继续\n "); flag++; p1->next = p2->next; free(p2); printf("删除成功!\n"); break; } p1 = p1->next; p2 = p2->next; } if (flag == 0) { printf ("该学号不存在!\n"); getchar(); printf ("按任意键返回主菜单"); getchar(); return ; } }
时间: 2024-01-23 13:01:52 浏览: 37
C语言学生学籍管理系统课程设计.doc
5星 · 资源好评率100%
这段代码与之前的代码相比,只有一个细微的变化:在遍历链表时,将 p1 的初始值设为 head,而不是 head->next。这个变化的作用是,当找到要删除的节点时,可以直接使用 p1 的指针修改前一个节点的指针,不需要再次遍历链表找到该节点的前一个节点。
另外,这段代码仍然没有使用文件读写操作,只是包含了文件操作相关的头文件和指针。
阅读全文