c语言设计实例报错,请高手更正!!!!
程序代码:
#include"stdio.h" #include"stdlib.h" #define MAX 100 struct addr{ char name[30]; char street[40]; char city[20]; char state[3]; unsigned long int zip; }add_list[MAX]; void init_list(void),enter(void); void delete(void),list(void); void load(void),save(void); int menu_select(void),find_free(void); int main(void) { char choice; init_list(); for(;;) { choice=menu_select(); switch(choice) { case 1:enter(); break; case 2:delete(); break; case 3:list(); break; case 4:save(); break; case 5:load(); break; case 6:exit(0); } } return 0; } void init_list(void) { register int t; for(t=0;t<MAX;++t) add_list[t].name[0]='0'; } int menu_select(void) { char s[80]; int c; printf("1.Enter a name\n"); printf("2.Delete a name\n"); printf("3.List the file\n"); printf("4.Save the file\n"); printf("5.Load the file\n"); printf("6.Quit\n"); do{ printf("\nEnter you choice:"); gets(s); c=atoi(s); }while(c<0||c>6); return c; } void enter(void) { int slot; char s[80]; slot=find_free(); if(slot==-1) {printf("\nList Full"); return; } printf("Enter name:"); gets(add_list[slot].name); printf("Enter street:"); gets("add_list[slot].street"); printf("Enter city:"); gets(add_list[slot].city); printf("Enter state:"); gets(add_list[slot].state); printf("Enter zip:"); gets(s); add_list[slot].zip=strtoul(s,'\0',10); } int find_free(void) { register int t; for(t=0;add_list[t].name[0]&&t<MAX;++t) if(t==MAX) return -1; return t; } void delete(void) { register int slot; char s[80]; printf("enter record #:"); gets(s); slot=atoi(s); if(slot>=0&&slot<MAX) add_list[slot].name[0]='\0'; } void list(void) { register int t; for(t=0;t<MAX;++t) { if(add_list[t].name[0]) { printf("%s\n",add_list[t].name); printf("%s\n",add_list[t].street); printf("%s\n",add_list[t].city); printf("%s\n",add_list[t].state); printf("%s\n",add_list[t].zip); } } printf("\n\n"); } void save(void) { FILE *fp; register int i; if((fp=fopen("maillist","wb"))==NULL) printf("cannot open file\n"); return; for(i=0;i<MAX;i++) if(*add_list[i].name) if(fwrite(&add_list[i],sizeof(struct addr),1,fp)!=1) printf("File write error\n"); fclose(fp); } void load(void) { FILE *fp; register int i; if((fp=fopen("maillist","rb"))==NULL) { printf("cannot open file\n"); return; } init_list(); for(i=0;i<MAX;i++) if(fread(&add_list[i],sizeof(struct addr),1,fp)!=1) { if(feof(fp)) break; printf("File read error\n"); } fclose(fp); }上述程序想建立一个通讯录,存放有姓名、电话号码、住址等,具备输入、查找、添加、修改及删除等功能。但是实现的时候老是报错,请各位高手指正,谢谢!!请把调试成功的发出来,谢谢!!!