关于设计运动会排名系统的问题

问题遇到的现象和发生背景

刚入门C语言不久 要求做个小系统 ,其中的更新模块要先输入正确密码才能进入新增删除或修改项目环节
现在就是没有error可以运行的情况 但是运行出来只能进行到输入密码然后弹出密码正确 没有办法再进行下一步

问题相关代码,请勿粘贴截图
int menu()
{
    int choice;
    system("cls");
     printf("\t\t\t\t----------------------------------------------------------\n");
    printf("\t\t\t\t|                 欢迎使用运动会排名系统                 |\n");
    printf("\t\t\t\t----------------------------------------------------------\n");
    printf("\t\t\t\t|                   1-查看排名                           |\n");
    printf("\t\t\t\t----------------------------------------------------------\n");
    printf("\t\t\t\t|                   2-详细查询                           |\n");
    printf("\t\t\t\t----------------------------------------------------------\n");
    printf("\t\t\t\t|                   3-更新信息                           |\n");
    printf("\t\t\t\t----------------------------------------------------------\n");
    printf("\t\t\t\t|                   4-其他帮助                           |\n");
    printf("\t\t\t\t----------------------------------------------------------\n");
    printf("\t\t\t\t|                   0-退出程序                           |\n");
    printf("\t\t\t\t----------------------------------------------------------\n"); 
    printf("\t\t\t\t请选择功能:");
    scanf("%d",&choice);
    while(choice>4||choice<0)//判断是否输入正确
    {
        printf("请重新选择:");
        scanf("%d",&choice);
    }
    return choice;
}

int replace_yundongyuan(struct yundongyuan arr[],int n)    
{    
    int key();//进入更新程序前,输入密码12345678
    {
        char s[20];
        int n=0;
        printf("请输入密码:");
        while(n<3)
        {
            scanf("%s",s);
            getchar();
            if(strcmp(s,"12345678")==0)
            {
                printf("密码正确\n");
                return 0;
            }
            else
            {
                   n++;
                if(n==3)
                {
                    printf("输入错误,即将退出\n");
                    return 1;
                }
                printf("密码错误,请重新输入\n");
            }
        }
        return 1;
    }    
    int replacemode;
    int i,j=0;
    system("cls");                //清屏 
    printf("\t\t\t\t----------------------------------------------------------\n");
    printf("\t\t\t\t|                 欢迎使用运动会排名系统                 |\n");
    printf("\t\t\t\t----------------------------------------------------------\n");
    printf("\t\t\t\t|                   1-新增项目信息                       |\n");
    printf("\t\t\t\t----------------------------------------------------------\n");
    printf("\t\t\t\t|                   2-删除项目信息                       |\n");
    printf("\t\t\t\t----------------------------------------------------------\n");
    printf("\t\t\t\t|                   3-修改项目信息                       |\n");
    printf("\t\t\t\t----------------------------------------------------------\n");
    printf("\t\t\t\t|                   0-返回上级菜单                       |\n");
    printf("\t\t\t\t----------------------------------------------------------\n");
    printf("\t\t\t\t请选择功能:");
    scanf("%d",&replacemode);

最后的主函数在这里

int main()
{
    system("cls");
    int choice;
    int num=0;
    int n;                    
    struct yundongyuan per[100];        
    do
    {
        choice=menu();
        switch(choice)
        {
        case 1:
            rank_yundongyuan(per,n);
            system("pause");    
            break;
        case 2:
            search_yundongyuan(per,n);
            system("pause");
            break;
        case 3:
            replace_yundongyuan(per,n);    
            system("pause");    
            break;
        case 4:
            printf("尚未开发此功能!"); 
            system("pause");
            break;
        case 0:
            printf("\t谢谢使用!\n");
            exit(0);
        }
    }
        while(choice!=0);
    return 0;
}

运行结果及报错内容

不清楚该怎么改才能让他在输入密码之后正常运行

我的解答思路和尝试过的方法
我想要达到的结果

30行啥意思???int key();这是?
密码输入正确你就return true了,那这个函数的作用是更新信息啊,不是检查密码啊,你咋就return 了呢 后面接着写更新信息的代码啊

供参考:

#include <stdio.h>
struct yundongyuan{
    int id;
    char name[16];
    //.....
};
int menu()
{
    int choice;
    system("cls");
     printf("\t\t\t\t----------------------------------------------------------\n");
    printf("\t\t\t\t|                 欢迎使用运动会排名系统                 |\n");
    printf("\t\t\t\t----------------------------------------------------------\n");
    printf("\t\t\t\t|                   1-查看排名                           |\n");
    printf("\t\t\t\t----------------------------------------------------------\n");
    printf("\t\t\t\t|                   2-详细查询                           |\n");
    printf("\t\t\t\t----------------------------------------------------------\n");
    printf("\t\t\t\t|                   3-更新信息                           |\n");
    printf("\t\t\t\t----------------------------------------------------------\n");
    printf("\t\t\t\t|                   4-其他帮助                           |\n");
    printf("\t\t\t\t----------------------------------------------------------\n");
    printf("\t\t\t\t|                   0-退出程序                           |\n");
    printf("\t\t\t\t----------------------------------------------------------\n");
    printf("\t\t\t\t请选择功能:");
    scanf("%d",&choice);
    while(choice>4||choice<0)//判断是否输入正确
    {
        printf("\t\t\t\t请重新选择:");
        scanf("%d",&choice);
    }
    return choice;
}

int login_key()//进入更新程序前,输入密码12345678
{
    char s[20];
    int n=0;
    printf("请输入密码:");
    while(n<3)
    {
        scanf("%s",s);
        getchar();
        if(strcmp(s,"12345678")==0)
        {
            printf("密码正确\n");
            return 0;
        }
        else
        {
            n++;
            if(n==3)
            {
                printf("输入错误,即将退出\n");
                break;  //return 1;
            }
            printf("密码错误,请重新输入\n");
        }
    }
    return 1;
}

int replace_menu()
{
    int replacemode;
    int i,j=0;
    system("cls");                //清屏
    printf("\t\t\t\t----------------------------------------------------------\n");
    printf("\t\t\t\t|                 欢迎使用运动会排名系统                 |\n");
    printf("\t\t\t\t----------------------------------------------------------\n");
    printf("\t\t\t\t|                   1-新增项目信息                       |\n");
    printf("\t\t\t\t----------------------------------------------------------\n");
    printf("\t\t\t\t|                   2-删除项目信息                       |\n");
    printf("\t\t\t\t----------------------------------------------------------\n");
    printf("\t\t\t\t|                   3-修改项目信息                       |\n");
    printf("\t\t\t\t----------------------------------------------------------\n");
    printf("\t\t\t\t|                   0-返回上级菜单                       |\n");
    printf("\t\t\t\t----------------------------------------------------------\n");
    printf("\t\t\t\t请选择功能:");
    scanf("%d",&replacemode);
    while(replacemode>3 || replacemode<0)//判断是否输入正确
    {
        printf("\t\t\t\t请重新选择:");
        scanf("%d",&replacemode);
    }
    return replacemode;
}
void add_xiangmu(struct yundongyuan arr[],int n)
{
    printf("1-新增项目信息\n");
}
void del_xiangmu(struct yundongyuan arr[],int n)
{
    printf("2-删除项目信息\n");
}
void replace_xiangmu(struct yundongyuan arr[],int n)
{
    printf("3-修改项目信息\n");
}

int main()
{
    system("cls");
    int choice;
    int num=0;
    int n;                    
    struct yundongyuan per[100];        
    do
    {
        choice=menu();
        switch(choice)
        {
        case 1:
            rank_yundongyuan(per,n);
            system("pause");    
            break;
        case 2:
            search_yundongyuan(per,n);
            system("pause");
            break;
        case 3:
            if(!login_key())
            {
                 do{
                     num = replace_menu();
                     switch(num){
                           case 1:add_xiangmu(per,n);
                                  system("pause");
                                  break;
                           case 2:del_xiangmu(per,n);
                                  system("pause");
                                  break;
                           case 3:replace_xiangmu(per,n);
                                  system("pause");
                                  break;
                           case 0:break;
                     }
                 }while(num != 0);
            }
            system("pause");    
            break;
        case 4:
            printf("尚未开发此功能!"); 
            system("pause");
            break;
        case 0:
            printf("\t谢谢使用!\n");
            exit(0);
        }
    }while(choice!=0);
    return 0;
}

img


目前就是只能运行出这个来 再往后就不行了