用c语言编写杂志订阅系统

帮忙解答这个程序哪里出错了
题目使用计算机对一种杂志的订阅进行管理。该杂志拥有订户最多不超过10人,每个订户的信息包括姓名、性别、地址、电话号码、杂志单价、订阅数、订阅的期限(至x×年×)
现要求用菜单选择并完成如下功能:
(1)增加新订户,即将订户的全部信息输入到文件中。
(2)根据当天的日期对订户文件进行查询,删除已到期的订户记录。
(3)统计本期杂志订户数并打印运算结果。

#include
#include
#include
#define max 10
struct magazine
{
    char name[6];
    char sex[3];
    char addr[13];
    char phone_number[12];
    char unit_price[5];
    char amount[4];
    char time_limit[9];

}order[max];

void menu();
void add();
void search();
void statistic();
int load_record;
void input(int i);
void save(int n);
void print_one(int i);
void print_n(int n);

int main1()
{
    FILE*fp;
    fp=fopen("record.txt","w");
    fclose(fp);
    menu();
    return 0;
}
void menu()
{
    int n,w;
    do{
        printf("欢迎来到杂志订阅系统\n\n\n");
        printf("请选择您的操作(1-4):【 】\b\b\b");
        printf("1:添加用户信息\n");
        printf("2:查询用户信息\n");
        printf("3:统计用户信息\n");
        printf("4:退出系统\n");
        scanf("%d",&n);
        if(n<1||n>4)
        {
            w=1;
            getchar();
        }
        else
        {
            w=0;
        }
    }while(w);
    switch(n)
    {
        case 1:add();break;
        case 2:search();break;
        case 3:statistic();break;
        case 4:exit(0);break;
    }
}
void add()
{
    printf("add\n");
    int t,m,i;
    t=load_record;
    printf("您希望添加几组用户信息?\n");
    printf("请输入数字:【 】\b\b\b");
    scanf("%d",&m);
    for(i=0;i<m;i++)
    {
        printf("\请输入第%d组用户记录\n",i+1);
        input(t+i);
    }
    save(t+m);
    menu();
}
void input(int i)
{
    printf("调用了input函数\n");
    printf("请输入:\n 姓名 性别 地址 电话号码 杂志单价 订阅数 订阅期限\n");
    scanf("%s%s%s%s%s%s%s",&order[i].name,&order[i].sex,&order[i].addr,&order[i].phone_number,&order[i].unit_price,&order[i].amount,&order[i].time_limit);
}
void search()
{
    printf("search\n");
    FILE*fp;
    char date[9],str[2];
    int t,i,sum=0;
    t=load_record;
    printf("请输入日期:【       】\b\b\b\b\b\b\b\b\b");
    scanf("%s",date);
    printf("\n");
    if((fp=fopen("record.txt","w"))==NULL)
    {
        printf("文件无法打开\n\n");
        exit(0);
    }
    printf("\n");
    for(i=0;i<t;i++)
    {
        if(strcmp(order[i].time_limit,date)<0)
        {
            sum++;
            printf("\n");
            print_one(i);
            printf("\n\n该用户信息已过期");
            printf("\n\n您希望删除此信息吗?(‘Y’或‘N’):【】\b\b");
            scanf("%s",str);
            if(strcmp(str,"Y")==0||strcmp(str,"y")==0)
            continue;
        }
        fwrite(&order[i],sizeof(struct magazine),1,fp);
    }
    fclose(fp);
    if(sum==0)
    {
        printf("找不到您要的信息\n\n");
    }
    printf("\n\n\n任意键返回上一步\n\n");
    getchar();
    menu();
}
void print_one(int i)
{
    printf("%-10s %-5s %-10s %-11s %-4s %-3s %-10s\n\n",order[i].name,order[i].sex,order[i].addr,order[i].phone_number,order[i].unit_price,order[i].amount,order[i].time_limit);
}
void statistic()
{
    printf("statistic\n");
    int t;
    t=load_record;
    print_n(t);
    printf("\n\n\n按任意键返回\n\n");
    getchar();
    getchar();
    menu();
}
void print_n(int n)
{
    int j;
    printf("姓名 性别 地址 电话号码 杂志单价 订阅数 订阅期限\n\n");
    for(j=0;j<n;j++)
    {
        if((j+1)%11==0)
        {
            printf("\n\n按任意键继续");
            getchar();
            puts("\n\n");
        }
        print_one(j);
    }
}
int load_recod()
{
    printf("load_record()\n");
    FILE*fp;
    if((fp=fopen("record.txt","r"))==NULL)
    {
        printf("\n文件无法打开\n");
        exit(0);
    }
    int i;
    for(i=0;!feof(fp);i++)
    {
        fread(&order[i],sizeof(struct magazine),1,fp);
    }
    fclose(fp);
    return(i-1);
}
void save(int n)
{
    printf("调用了save函数\n");
    FILE*fp;
    int i;
    fp=fopen("record.txt","w");
    if(fp==NULL)
    {
        printf("\n文件无法打开\n");
        exit(0);
    }
    for(i=0;i<n;i++)
    {
        fwrite(&order[i],sizeof(struct magazine),1,fp);
    }
    fclose(fp);
}