C语言模块调用问题,输入的数和输出的数有差异

img


这个号码是11位的,这个性别判断也没进行进去,按道理我最后一位是1这个判断应该是男的而不是女的

void xingbie(){

    int y;

    if(stu[y].id5%2==0&&stu[y].id5!=1){

        printf("性别:女\n");
    }
    else{
        printf("性别:男\n"); 
    }

}
void age(){
    int y,q,w,e;
    w=2023,e=302;
    q=w-stu[y].id2;
    if(stu[y].id3>e)
    printf("年龄:%d\n",q);
    else{
    q--;
    printf("年龄:%d\n",q);
}
}```

int main(){

page();

int x;
scanf("%d",&x);
while(1){
    switch(x)
        {
case 1:
     cha();break;//查询信息区域 
        case 2:
          cun();break;//存入信息区域 
            case 3:
              shan();break;//删除信息区域
                case 4:
                 lie();break;//列出信息区域 
                    default:printf("输入的信息编号有误");
        } 
        }

}```

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^