user-0 提问: 小女子跪求C大神们赐教~

回复:
user: user-0
content: 好感谢butters10 ~~~

user: user-1
content: xinsert和binsert要先声明后实现。 否则就要把xinsert和binsert的实现写在开头。

user: user-2
content: 建议使用有函数折叠功能的IDE

user: user-3
content: #include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> #define N 100   typedef struct employee//职工基本情况 {     char num[6];//员工编号     char name[8];//员工姓名     char sex;//性别f为女m为男     char birth[8];//出生年月     char workplace[10];//工作部门     char phone[9];/*办公室电话号码*/     char call[12];/*手机号码*/     struct employee *next;/*结点的指针域*/      }ListNode;  /*主要函数*/ void input(ListNode*){}//输入职工信息 void search(ListNode*){}//查询职工信息 void change(ListNode*){}//修改职工信息 void insert(ListNode*);//插入职工信息 void del(ListNode*);//删除职工信息 void display(ListNode*){}//通讯录表输出  void passWord(){}//设置密码 void save(){}//保存职工信息 void searchByname(){}//按姓名查找 void searchBytel(){}//按手机号查找  int i=0;  int main() {     ListNode* head = (ListNode*)malloc(sizeof(ListNode));          while (1) {                  int choice = 0;         printf("**************************** \n\n");//系统欢迎界面         printf(" 欢迎进入职工管理系统   \n");         printf("**************************** \n");         printf(" 请您选择操作类型: \n");         printf("======================== \n");         printf("   1.输入职工信息 \n");            //用户选择         printf("   2.查询职工信息 \n");         printf("   4.插入职工信息 \n");         printf("   3.修改职工信息 \n");         printf("   5.删除职工信息 \n");         printf("   6.通讯录表输出 \n");         printf("   0.退出系统 \n");         printf("======================== \n");                           scanf("%d",&choice);         switch(choice)         {             case 1:input(head);break;             case 2:search(head);break;             case 3:change(head);break;             case 4:insert(head);break;             case 5:del(head);break;             case 6:display(head);break;             case 7:passWord();break;             case 8:searchByname();break;             case 9:searchBytel();break;             case 0:             {                 printf("谢谢您使用员工通讯录! ");        //退出系统                 exit(0);             }break;             default:                 printf("输入有错误请重新输入: ");         }              }     return false; }   void xinsert(ListNode *); void binsert(ListNode *);  void insert(ListNode * head){                                      //插入函数     int s;          printf("-----------------------------------------\n");     printf("输入1按员工姓名插入:\n");     printf("输入2按员工编号插入:\n");     printf("----------------------------------------\n");          scanf("%d",&s);     switch(s){                                   //是按照姓名插入还是按照编号插入         case 1:xinsert(head);break;         case 2:binsert(head);break;         default:printf("输入错误！请重新输入。");     } }   void xinsert(ListNode *head){                                               //按员工姓名插入          char name1[8];     int i,j;     ListNode *p,*q = NULL;     printf("请输入要插入的员工姓名：");     scanf("%s",name1);     printf("请输入要插入的位置：");     scanf("%d",&i);          p=head;     j=0;     while(p!=NULL&&j<i-1)                            //找到第i-1个结点     {         j=i+1;         p=p->next;     }          if(j == i-1)                                        //结点存在     {         ListNode* x=(ListNode *)malloc(sizeof(ListNode));         strncpy(x->name, name1, sizeof(x->name));         q->next=p->next;         p->next=x;         x->next=q;         printf("插入完成\n");     }     else         printf("不存在第i个位置。\n"); }   void binsert(ListNode *head){                                               //按员工编号插入          char num[6];     int i,j;     ListNode *p,*q;     printf("请输入要插入的员工编号：");     scanf("%s",num);     printf("请输入要插入的位置：");     scanf("%d",&i);          p=head;     j=0;     while(p!=NULL&&j<i-1)                            //找到第i-1个结点     {         j=i+1;         p=p->next;     }          if(j==i-1)                                        //结点存在     {         ListNode* x=(ListNode *)malloc(sizeof(ListNode));         strncpy(x->num,num,sizeof(x->num));         q=p->next;         p->next=x;         x->next=q;         printf("插入完成\n");     }     else         printf("不存在第i个位置。 \n"); }  void xdel(ListNode* head); void bdel(ListNode* head);  void del(ListNode* head){                                                             //删除函数     int a;     printf("-----------------------------------------\n");     printf("输入“1” 按员工姓名删除\n");     printf("输入“2”按员工编号删除\n");     printf("----------------------------------------\n");     scanf("%d",&a);     switch(a){                                   //按所选择的数字进入相应的删除函数。         case 1:xdel(head);break;         case 2:bdel(head);break;         default:printf("输入错误！请重新输入。");     } }   void xdel(ListNode* head){                                               //按员工姓名删除的函数。          char name1[8];     ListNode *p,*q;     printf("请输入要删除的员工姓名：");     scanf("%s",name1);     p=head;     if(p->next==NULL)                                          //若链表中没有信息。         printf("没有要删除的员工信息\n");     else{                       //链表中有信息，找出与姓名相符的节点或一直找到链表尾。         do{             q=p;             p=p->next;         }         while(strcmp(name1,p->name)==0&&p->next==NULL);         if(p->next==NULL)                                          //找到链表尾             printf("没有要删除的员工信息\n");         else{                                     //找到与姓名相符的节点，删除节点。             q->next=p->next;             free(p);             printf("相应信息已删除！\n");}              } }  void bdel(ListNode* head){                                               //按员工编号删除的函数。          char number[5];     ListNode *p,*q;     printf("请输入要删除的员工编号：");     scanf("%s",number);     p=head;          if(p->next==NULL)                                          //若链表中没有信息。         printf("没有要删除的员工信息\n");     else{                       //链表中有信息，找出与编号相同的节点或一直找到链表尾。         do{             q=p;             p=p->next;         }while(!strcmp(number,p->num) &&p->next==NULL);                  if(p->next==NULL)                                          //找到链表尾             printf("没有要删除的员工信息\n");         else{                                     //找到与姓名相符的节点，删除节点。             q->next=p->next;             free(p);             printf("相应信息已删除！\n");}              } }

user: user-4
content: 这个没有别的原因就是少了一个右大括号“}”，报错的个数和这个函数的位置有关，好像也和作用域有关，或者和它的使用频度有关，反正报错的个数不太一样，是主应用程序的一个函数少了一个“}”。解决的方法就是：如果函数的数量少就一个一个的用Ctrl+}来查