求大神解答(急) 为什么没法正常输出 哪里错了(输入的格式不对吗?)

图片说明

#include<stdio.h> 
#include<stdlib.h>
#include<string.h>
typedef struct _data
{
    char name[30];
    int age;
    char sex;
    char disease[30]; 
    int num;
}Data;
typedef struct _Node
{
    Data user;
    struct _Node*next;
}Node;
Node*create()
{
    Node*head=(Node*)malloc(sizeof(Node));
    if(head==NULL)
    exit (-1);
    head->next=NULL;
    return head;
}
void insert(Node*head,Data per)
{
    Node*cur=(Node*)malloc(sizeof(Node));
    if(cur==NULL) exit(-1);

    head->user.age=per.age;
    head->user.sex=per.sex;
    head->user.num=per.num;
    strcpy(per.name ,head->user.name);
    strcpy(per.disease,head->user.disease);

    cur->next=head->next;
    head->next=cur;
}
int len(Node*head)
{
    int n=0;
    head=head->next;
    while(head)
    {
        n++;
        head=head->next;
    }
    return n;
}
void traverse(Node*head)
{
    head=head->next;
    while(head)
    {
        printf("%s %d %c %s %d\n",head->user.name,head->user.age,head->user.sex,head->user.disease,head->user.num);
        head=head->next;
    }
}
void pop(Node*head)
{
    int l=len(head);
    head=head->next;
    Node*p,*q;
    int m=0;
    for(int i=0;i<l-1;i++)
    {
        p=head;
        q=p->next;
        for(int j=0;j<l-1-i;j++)
        {
            if(p->user.num>q->user.num)
         {
            m=p->user.num;
            p->user.num=q->user.num;
            q->user.num=m;
         }
         p=p->next;
         q=p->next;
        }
    }
}
Node*search(Node*head,int num)
{
    head=head->next;
    while(head)
    {
        if(head->user.num==num)
          break;
        else
        head=head->next;
    }
    return head;
}
int main()
{
    printf("请输入病人信息包括:\n"); 
    printf("姓名  年龄  性别  病名  序号\n");
    Data per;
    Node*head=create();
    while(scanf("%s %d %c %s %d",per.name,&per.age,&per.sex,per.disease,&per.num)!=EOF )

        insert(head,per);

    printf("打印病人人数\n");
    int mun=len(head);

    printf("按房间号排序\n");
    pop(head);
    traverse(head);

    printf("请输入待查找病人序号:\n");
    int n=0;
    scanf("%d",&n); 
    Node*find=search(head, n);
    if(find==NULL)
    printf("未查询到此人");
    else
    printf("查询成功");
    printf("%s %d %c %s %d",find->user.name,&find->user.age,&find->user.sex,![图片说明](https://img-ask.csdn.net/upload/202008/17/1597660259_778652.png)
find->user.disease,&find->user.num) ;   
}

输入数据的时候,scanf里面per.name前面少了 &

 while(scanf("%s %d %c %s %d",&per.name,&per.age,&per.sex,per.disease,&per.num)!=EOF )