请问可以帮看怎么改吗

问题遇到的现象和发生背景
遇到的现象和发生背景,请写出第一个错误信息
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%

#include

struct student

{
    long num;

    float score;

    struct student* next;

};

int n;

struct student* insert(struct student* head, struct student* stud)

{
    struct student* p0, * p1, * p2;

    p1 = head;                          //使p1指向第一个结点

    p0 = stud;                          //指向要插入的结点

    if (head == NULL)                    //原来的链表是空表

    {
        head = p0;p0->next = NULL;
    }          //使p0指向的结点作为头结点

    else

    {
        while ((p0->num > p1->num) && (p1->next != NULL))

        {
            p2 = p1;                           //使p2指向刚才p1指向的结点

            p1 = p1->next;

        }                    //p1后移一个结点

        if (p0->num <= p1->num)

        {
            if (head == p1) head = p0;           //插到原来第一个结点之前
            
            else p2->next = p0;               //插到p2指向的结点之后

            p0->next = p1;

        }

        else

        {
            p1->next = p0;

            p0->next = NULL;                  //插到最后的结点之后

        }

    }

    n = n + 1;                         //结点数加1

    return (head);

}
运行结果及详细报错内容

img

我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”

贴个完整的代码吧