为什么这个代码不能实现输出功能,哪里出问题了

#include"stdio.h"
typedef struct lnode
{
int date;
struct lnode *next;
}lnode,*linklist;
int main()
{
linklist l,r,p;
l=new lnode;
l->next=NULL;
r=l;
printf("请输入1 2 3 4 5\n");
for(int i=1;i<=5;i++)
{
p=new lnode;
p->date=NULL;
scanf("%d",p->date);
r->next=p;
r=p;
}
r=l->next;
printf("\n");
while(r->next!=NULL)
{
printf("%d\t",r->date);
}
printf("\n");
}

帮你修改好了。

#include "stdio.h"

typedef struct lnode
{
    int data;
    struct lnode *next;
} lnode, *linklist;

int main()
{
    linklist l, r, p;
    l = new lnode;
    l->next = NULL;
    r = l;
    printf("请输入1 2 3 4 5\n");
    for (int i = 1; i <= 5; i++)
    {
        p = new lnode;
        p->next = NULL;
        scanf("%d", &p->data);
        r->next = p;
        r = p;
    }

    r = l->next;
    printf("\n");
    while (r)
    {
        printf("%d\t", r->data);
        r = r->next;
    }
    printf("\n");

    r = l;
    while (r) {
        p = r;
        r = r->next;
        delete p;
    }

    return 0;
}