添加信息和修改信息运行不出来

运行时,没有错误,但不显示结果。输出时密码和身份证的第一个字符不显示。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LEN sizeof(LNode)
#include <iostream>
using namespace std;;

int seat;
typedef struct LNode   //客户账户结点
{
  int number;       //账号 
  char name[20];    //姓名 
  char key[20];   //密码 
  char ID[20];        //身份证号 
  double money;     //余额 
  double telenum;   //电话号码 
  struct LNode *next;//记录下一个空间地址 
}LNode,*LinkList;

void printList(LinkList L)
{    // 打印头结点地址为L的客户账户表 
   LinkList p=L;////
   int n=1;
   printf("\n          ---------------------------------------\n");
   printf("               账号       姓名          密码                  身份证号              余额          电话号码\n");
   printf("          ----------------------------------------\n");   
   if(L==NULL || L->next==NULL) 
         printf("该客户账户表中没有元素\n");
   else 
       while(p->next !=NULL)
       {
         printf("          %2d   %-9d",n,p->next->number);
         printf("    %-5s",p->next->name);
         printf("    %-20s",p->next->key);
         printf("    %-20s",p->next->ID);
         printf("    %.0f",p->next->money);
         printf("       %.0f\n",p->next->telenum);
         p=p->next;
         n++;
       }
   printf("          ----------------------------------------\n");
   return ;
}//end 

LinkList prior(LinkList L,LinkList p)
{  // 查找位于当前地址元素的前一元素的地址
   LinkList p_prior=L;
   if(L->next==NULL) 
      return(L);
   while(p_prior->next != p)
   {
      p_prior=p_prior->next;
   }
   return (p_prior);
}  

void insertYouXu(LinkList L,LinkList Elem) 
{              //插入一个元素,使原有序表仍为有序
    LinkList p=L->next;
    while(p!=NULL && Elem->number>=p->number)
    {
        if(p->number==Elem->number)
        {
            printf("重复输入!!\n");return;
        }
        p=p->next;
    }         
    //确定Elem插入的位置
    if(p==NULL) 
    {
        p=prior(L,p); Elem->next=NULL;p->next=Elem;
    } 
    else       //若为空表,插到头结点之后
    { 
        p=prior(L,p); Elem->next=p->next; p->next=Elem; 
    }
}

LinkList creatIncreLink() 
{//创建一个存放客户账户表成员的非递减有序表,返回头结点地址
   char ID[20];        //身份证号 
   char key[20];   //密码 
   double money;     //余额 
   int num=1,number;
   double telenum;
   char name[20],temp1,temp2,temp3;
   LinkList L,p;
   L=(LinkList)malloc(LEN);    //头结点
   L->next=NULL;
   printf("请输入账号、姓名、密码、身份证号、余额和电话号码,建立客户账号表,以'-1'为输入结束标志\n");
   printf("请输入账号 %d:",num);
      scanf("%d",&number);
   printf("请输入姓名 %d: ",num);
      temp1=getchar(); gets(name);
   printf("请输入密码 %d: ",num);
      temp2=getchar(); gets(key);
   printf("请输入身份证号 %d: ",num);
      temp3=getchar(); gets(ID);
   printf("请输入余额 %d: ",num);
      scanf("%lf",&money);
   printf("请输入电话号码 %d:",num);
      scanf("%lf",&telenum);
   while(number>=0)
   {
      p=(LinkList)malloc(LEN); //新结点
      p->number=number;
      strcpy(p->name,name);
      strcpy(p->key,key);
      strcpy(p->ID,ID);
      p->money=money;
      p->telenum=telenum;

      insertYouXu(L,p);       //有序的插入新结点
      num++;
    printf("请输入账号 %d:",num);
      scanf("%d",&number);
   printf("请输入姓名 %d: ",num);
      temp1=getchar(); gets(name);
   printf("请输入密码 %d: ",num);
      temp2=getchar(); gets(key);
   printf("请输入身份证号 %d: ",num);
      temp3=getchar(); gets(ID);
   printf("请输入余额 %d: ",num);
      scanf("%lf",&money);
   printf("请输入电话号码 %d:",num);
      scanf("%lf",&telenum);
   }
   return(L);
}

void deleteElem(LinkList L,int i)       
{ //从客户账号表中删除第i个元素
    LinkList p=L,q;//////
    int j=0;
    while (p->next && j<i-1)
    {
       p = p->next;j++;
    } 
    if(!(p->next)) //判断i是否合法,i既不能大于元素的个数,也不能小于等于0
    {
        printf("第%d个元素删除失败\n",i);
        return ;
    }
    q = p->next;
    p->next = q->next;
    free(q);  //释放删除的结点 
}

int searchNum(LinkList L,int n)
{    // 按账号查找客户 
 int flag=0;
 LinkList p=L->next;
 seat=1;
 if(L->next==NULL) printf("该链表中没有元素,查找失败\n");
 else 
 {
  while(p !=NULL)
  {
   if(p->number<=n)
    if(p->number==n)
    {
       flag=1;
       printf("要查找的是第%d位通讯者:\n",seat);
    printf("                        账号: %d   姓名: %s   密码:%s   身份证号:%s   余额:%.0f   电话号码:%.0f\n",p->number,p->name,p->key,p->ID,p->money,p->telenum);
    }
   p=p->next;seat++;//!!!!
  }
 }
 return flag;
}

int changeNum(LinkList L,int n)
{    // 按账号修改客户 
 int flag=0;
 LinkList p=L->next;
 seat=1;
 if(L->next==NULL) printf("该链表中没有元素,查找失败\n");
 else 
 {
  while(p !=NULL)
  {
   if(p->number<=n)
    if(p->number==n)
    {
       flag=1;
   }
   p=p->next;seat++;//!!!!
  }
 }
 return flag;
}

int searchName(LinkList L,char n[])
{    // 按姓名查找客户 
 int flag=0;
 LinkList p=L->next;
 seat=1;
 if(L->next==NULL||L==NULL) 
 printf("该通讯录中没有元素,查找失败\n");
 else 
 {
  while(p !=NULL)
  {
   if(!strcmp(p->name,n))
   {
    flag=1;
    printf("要查找的是第%d位客户:\n",seat);
    printf("                        账号: %d   姓名: %s   密码:%s   身份证号:%s   余额:%d   电话号码:%.0f\n",p->number,p->name,p->key,p->ID,p->money,p->telenum);
   }
   p=p->next;seat++;//!!!!!
  }
 }
 return flag;
}

int searchID(LinkList L,char n[])
{    // 按身份证号查找客户 
 int flag=0;
 LinkList p=L->next;
 seat=1;
 if(L->next==NULL||L==NULL) 
 printf("该通讯录中没有元素,查找失败\n");
 else 
 {
  while(p !=NULL)
  {
   if(!strcmp(p->ID,n))
   {
    flag=1;
    printf("要查找的是第%d位客户:\n",seat);
    printf("                        账号: %d   姓名: %s   密码:%s   身份证号:%s   余额:%d   电话号码:%.0f\n",p->number,p->name,p->key,p->ID,p->money,p->telenum);
   }
   p=p->next;seat++;//!!!!!
  }
 }
 return flag;
}

int delNum(LinkList L,int n)
{    // 按账号删除客户 
 int flag=0;
 LinkList p=L->next;
 seat=1;
 if(L->next==NULL)
 printf("该链表中没有元素,删除失败\n");
 else 
 {
  while(p !=NULL)
  {
   if(p->number<=n)
   {
    if(p->number==n)
    {
       flag=1;
       printf("%d ",p->number);
       p=p->next;
       deleteElem(L,seat);
      
    }
   }
   else {p=p->next;seat++;}
  }
  printf("被删除\n");
 }
 return flag;
}

int delID(LinkList L,char n[])
{    // 按身份证号删除客户    
 int flag=0;
 LinkList p=L->next;
 seat=1;
 if(L->next==NULL)
 printf("该链表中没有元素,查找失败\n");
 else
 {
  while(p !=NULL)
  {
   if(!strcmp(p->ID,n))
   {
    flag=1;
    printf("%s ",p->ID);
    p=p->next;
    deleteElem(L,seat);
   }
   else {p=p->next;seat++;}
  }
  if(flag)printf("被删除\n");
 }
 return flag;
}

int delName(LinkList L,char n[])
{    // 按姓名删除客户    
 int flag=0;
 LinkList p=L->next;
 seat=1;
 if(L->next==NULL)
 printf("该链表中没有元素,查找失败\n");
 else
 {
  while(p !=NULL)
  {
   if(!strcmp(p->name,n))
   {
    flag=1;
    printf("%s ",p->name);
    p=p->next;
    deleteElem(L,seat);
   }
   else {p=p->next;seat++;}
  }
  if(flag)printf("被删除\n");
 }
 return flag;
}

int changeName(LinkList L,char n[])
{    // 修改客户姓名    
 int flag=0;
 LinkList p=L->next;
 seat=1;
 if(L->next==NULL)
 printf("该链表中没有元素,查找失败\n");
 else
 {
  while(p !=NULL)
  {
   if(!strcmp(p->name,n))
   {
    flag=1;
    printf("%s ",p->name);
    p=p->next;
    deleteElem(L,seat);
   }
   else {p=p->next;seat++;}
  }
  if(flag)printf("被修改\n");
 }
 return flag;
}
  
 

int main(void)
{
   LinkList L=NULL,p;
   int flag=0,menu;
   char temp;
   system("color 1f");   
   printf("\n           ***************** ^@^欢迎使用客户账号管理系统***********\n");
   printf("           *               1 客户账户表的建立                   *\n");       
   printf("           *               2 插入客户账户记录                   *\n");
   printf("           *               3 查询客户账户记录                   *\n");
   printf("           *               4 删除客户账户记录                   *\n");
   printf("           *               5 修改客户账户记录                   *\n");
   printf("           *               6 显示客户账户表信息                 *\n");
   printf("           *               0 退出管理系统                   *\n");
   printf("           **************** ^@^欢迎使用客户账号管理系统************\n");
   printf("请选择0-6:");
      scanf("%d",&menu);
   while(menu!=0)
   {
     switch(menu)
     {
       case 1:
             { 
                L=creatIncreLink();
                printf("建立客户账户表:");
                printList(L);
                flag=1;
                break;
             }
       case 2:
             {
                if(flag==1)
                {
                    char ID[20];        //身份证号 
                    char key[20];   //密码 
                    //double money;     //余额 
                    int number,telenum,money;
                    //double telenum;
                    char name[20],temp1,temp2,temp3;
                    LinkList L,p;
                       printf("请输入客户的账号、姓名、密码、身份证号、余额和电话号码\n");
                       printf("请输入账号:");
                            scanf("%d",&number);
                       cout<<"请输入姓名:";//printf("请输入姓名: ");
                        cin>>name;
                            //temp1=getchar(); gets(name);
                       cout<<"请输入密码:";//printf("请输入密码: ");
                       cin>>key;
                            //temp2=getchar(); gets(key);
                        
                       cout<<"请输入身份证号:";//printf("请输入身份证号: ");
                       cin>>ID;
                            //temp3=getchar(); gets(ID);
                       printf("请输入余额:");
                            scanf("%d",&money);
                       printf("请输入电话号码:");
                            scanf("%d",&telenum);
                    p=(LinkList)malloc(LEN); //新结点
                    p->number=number;
                    strcpy(p->name,name);
                    strcpy(p->key,key);
                    strcpy(p->ID,ID);
                    p->money=money;
                    p->telenum=telenum;
                    insertYouXu(L,p);       //有序的插入新结点
                    printf("插入后:");
                    printList(L);
                }//endif
                else printf("\nERROR: 客户账户表还没有建立,请先建立客户账户表\n");
                     break;
             }//endcase2
       case 3:
            { 
                int way,n,num;
                char na[20],temp1,temp2;
                char ID[20];
                int s;
                if(L!=NULL)
                {
                    if(flag)
                    {
                        printf("选择查找方式:\n");
                        printf("               1.按账号   2.按姓名   3.按身份证号\n");
                           scanf("%d",&way);
                        if(way==1)
                        {
                           printf("\n请输入账号:");
                             scanf("%d",&n);
                           s=searchNum(L,n);
                          if(s==0) printf("无此客户,查找失败!\n");
                          break;
                        }
                        if(way==2)
                        {
                           printf("\n请输入姓名:");
                           temp1=getchar(); gets(na);
                           s=searchName(L,na);
                        if(s==0) printf("无此客户,查找失败!\n");
                        break;
                        }
                if(way==3)
                        {
                           printf("\n请输入身份证号:");
                            temp2=getchar(); gets(ID);
                           s=searchID(L,ID);
                           if(s==0) printf("无此客户,查找失败!\n");
                        }
                        else printf("客户账户表中无记录!\n");
                    }
                    break;
                }
                else printf("客户账户表中无记录!请先建立客户账号表\n");
                break;
            }//endcase3
       case 4:
           {
               int way;
               char temp; ////
               printf("选择删除方式:1.按序号  2. 按账号  3.按姓名   4.按身份证号 \n");
                  scanf("%d",&way);
               if(way==1)
               {
                  int n;
                  printf("请输入客户序号: ");
                     scanf("%d",&n);
                  printf("删除后:\n");
                  deleteElem(L,n);
                  printList(L);
               }
               else if(way==2)
               {
                  int n,f;
                  printf("请输入账号: ");
                  scanf("%d",&n);
                  f=delNum(L,n);
                  if(f!=0)
                  {
                      printf("删除后:\n");
                      printList(L);
                  }
                  else printf("无该客户,删除失败!\n");
               }
               else if(way==3)
               {
                  char na[20],temp;
                  int f;
                  printf("\n请输入姓名:");
                    temp=getchar();  gets(na);
                  f=delName(L,na);
                  if(f!=0)
                  {
                     printf("删除后:\n");
                     printList(L);
                  }
                  else printf("无该客户,删除失败!\n");
               }
               else if(way==4)
               {
                  char ID[20],temp;
                  int f;
                  printf("\n请输入身份证号:");
                    temp=getchar();  gets(ID);
                  f=delID(L,ID);
                  if(f!=0)
                  {
                     printf("删除后:\n");
                     printList(L);
                  }
                  else printf("无该客户,删除失败!\n");
               }
               else printf("ERROR!!\n");
               break;
           }//endcase4
       case 5:
           {
                int way,n,num,number,telenum,number1,telenum1;
                char name[20],temp1,temp2,name1[20];
                char ID[20],ID1[20];
                char key[20],key1[20];
                int s;
                LinkList L,p;
                if(L!=NULL)
                {
                    if(flag)
                    {
                        printf("选择修改内容:\n");
                        printf("               1.姓名   2.密码   3.身份证号  4.电话号码\n");
                           scanf("%d",&way);
                        if(way==1)
                        {
                            char key1[20];
                           printf("\n请输入账号:");
                             scanf("%d",&n);
                            //s=searchNum(L,n);
                           //(s==0) printf("无此客户,查找失败!\n");
LinkList p=L->next;
 seat=1;
 if(L->next==NULL) printf("该链表中没有元素,查找失败\n");
 else 
 {
  while(p !=NULL)
  {
   if(p->number<=n)
    if(p->number==n)
   p=p->next;seat++;//!!!!
  }
 }
                              s=searchNum(L,n);
                            if(s==0) printf("无此客户,查找失败!\n");
                                   printf("\n请输入密码:");
                                scanf("%s",key);
                                if(p->key!=key) printf("密码错误!\n");
                                else{
                                    printf("请输入新的名字:");
                                    scanf("%s",name1);
                                    p->name==name1;
                                    printf("修改后:");
                                    printList(L);
                                }
                           }
                           
                        }
                        if(way==2)
                        {
                            char s1;
                            printf("\n请输入账号:");
                             scanf("%d",&n);
                           s=searchNum(L,n);
                           if(s==0) printf("无此客户,查找失败!\n");
                          
                                   printf("\n请输入密码:");
                                scanf("%s",key);
                                if(strcmp(key,p->key)!=0) printf("密码错误!\n");
                                else{
                                    printf("请输入新的密码:");
                                    scanf("%s",p->key );
                                                                        p=(LinkList)malloc(LEN); //新结点
                                    p->number=number;
                                    strcpy(p->name,name);
                                    strcpy(p->key,key);
                                    strcpy(p->ID,ID);
                                    p->telenum=telenum;
                                    insertYouXu(L,p);       //有序的插入新结点
                                    printf("修改后:");
                                    printList(L);
                                }
                           
                           
                    }
                if(way==3)
                        {
                            printf("\n请输入账号:");
                             scanf("%d",&n);
                           s=searchNum(L,n);
                           if(s==0) printf("无此客户,查找失败!\n");
                           if(s){
                                   printf("\n请输入密码:");
                                scanf("%s",key);
                                if(strcmp(key,p->key)!=0) printf("密码错误!\n");
                                else{
                                    printf("请输入新的身份证号:");
                                    scanf("%s",p->ID );
                                                                        p=(LinkList)malloc(LEN); //新结点
                                    p->number=number;
                                    strcpy(p->name,name);
                                    strcpy(p->key,key);
                                    strcpy(p->ID,ID);
                                    p->telenum=telenum;
                                    insertYouXu(L,p);       //有序的插入新结点
                                    printf("修改后:"); 
                                    printList(L);
                                }
                           }
                           
                        }
                        if(way==4)
                        {
                            printf("\n请输入账号:");
                             scanf("%d",&n);
                           s=searchNum(L,n);
                            if(s){
                                   printf("\n请输入密码:");
                                scanf("%s",key);
                                if(strcmp(key,p->key)!=0) printf("密码错误!\n");
                                else{
                                    printf("请输入新的电话号码:");
                                    scanf("%s",p->telenum);
                                                                        p=(LinkList)malloc(LEN); //新结点
                                    p->number=number;
                                    strcpy(p->name,name);
                                    strcpy(p->key,key);
                                    strcpy(p->ID,ID);
                                    p->telenum=telenum;
                                    insertYouXu(L,p);       //有序的插入新结点
                                    printf("修改后:");
                                    printList(L);
                                }
                           }
                          
                    }
                        else printf("客户账户表中无记录!\n");
                    break;
           }}
       case 6:
           {
               printf("当前通讯录内容如下:\n");
               printList(L);
               break;
           }
       case 0: exit(0);
       default:  printf("\n没有此功能,重新输入\n");
     }//endswitch
     printf("选择功能:");
         scanf("%d",&menu);
   }}//endwhile
//end

你不写printf那能显示什么结果呢,你代码前半部分全是在scanf,而没有printf
至于到后面统一printf出问题,我建议你一步一步的调试,执行一步就打印出来看看,找到到底哪一步出了问题
这么长的代码总靠猜不是个办法