蒟蒻求助

P3613 【深基15.例2】寄包柜

KobeBryant924 @ 2021-03-21 18:14:41

c语言链表,哪里错了呢

#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
#include <ctype.h>
typedef struct lnode
{
    int gui;
    int ge;
    int data;
    struct lnode*link;
} node,*linklist;
int main()
{
    linklist p,r,list=NULL;
    int n,q,op,i=1,gui,ge,bao;
    scanf("%d%d",&n,&q);
    while(i<=q)
    {
        scanf("%d",&op);
        if(op==1)
        {
            scanf("%d",&gui);
            scanf("%d",&ge);
            scanf("%d",&bao);
            if(list!=NULL)//清空柜子
            {
                p=list;
                while(p!=NULL&&(p->gui!=gui||p->ge!=ge))
                    p=p->link;
                if(p==NULL)
                {
                    p=(linklist)malloc(sizeof(node));//新生成一个柜子
                    p->gui=gui;
                    p->ge=ge;
                    p->data=bao;
                    p->link=NULL;
                    if(list==NULL)
                        list=p;
                    else
                        r->link=p;
                    r=p;
                }
                else
                {
                    p->data=bao;
                }
            }
            else
            {
            p=(linklist)malloc(sizeof(node));//新生成一个柜子
            p->gui=gui;
            p->ge=ge;
            p->data=bao;
            p->link=NULL;
                list=p;
            } 

        }
        else
        {
            p=list;
            scanf("%d%d",&gui,&ge);
            while(p->link!=NULL&&(p->gui!=gui||p->ge!=ge))
            {
                p=p->link;
            }
            printf("%d\n",p->data);
        }
        i++;
    }
    return 0;
}

|