学生管理系统如何查找名字相同的学生

发布时间 2023-11-02 23:50:03作者: LMTSerendipity
STU *search_link(STU *head, char *name)
{
    if (NULL == head)
    {
        printf("链表不存在\n");
        return NULL;
    }//判断链表是否存在
    else
    {
        STU *pb = head;

        while ((strcmp(pb->name, name) != 0) && (pb->next != NULL))

            pb = pb->next;

        while (1)
        {
            if ((strcmp(pb->name, name) == 0) && (pb->next != NULL))            //找到要查找的名字,但下一个不为空(同学没查找完)
            {
                printf("结果是%d %s %f\n", pb->num, pb->name, pb->score);
                pb = pb->next;
            }
            else if ((strcmp(pb->name, name) == 0) && (pb->next == NULL))      //找到要查找的名字,但下一个为空(同学查找完了)返回这个同学的地址,通过主函数打印出来
            {
                return pb;
            }
            else if ((strcmp(pb->name, name) != 0) && (pb->next == NULL))
            {
                printf("找不到\n");
            }
            else if ((strcmp(pb->name, name) != 0) && (pb->next != NULL))
            {
                pb = pb->next;
            }
        }
    }
}

 

 主函数

结果显示