麻烦大家看一下哪里出了问题

#程序无法运行,麻烦大家看一下哪里有问题


#include<iostream>
using namespace std;
int n;int x;
char a[99];
struct student
    {float xuehao;
    char sex[99];
    char xingming[99];
    int chengji[3];
    float pingjun;
    float zong;
    };struct student student[51];
void caidan()//菜单
{cout<<"菜单:1.输入  2.插入  3.排序  4.查找  5.删除  6.输出(请输入对应的序号)"<<endl;
    cin>>x;
    void shuru(int n);void insert();void sort();void find();void shanchu();void output();
    switch(x)
    {
    case 1:shuru(n);
    case 2:insert();
    case 3:sort();
    case 4:find();
    case 5:shanchu();
    case 6:output();
    }
}
void output()
{for(int i=0;i<50;i++)
if(student[i].xuehao!=0)
cout<<endl<<"学号:"<<student[i].xuehao<<"姓名:"<<student[i].xingming<<"性别:"<<student[i].sex<<"\n第一科成绩:"<<student[i].chengji[0]<<"第二科成绩:"<<student[i].chengji[1]<<"第三科成绩:"<<student[i].chengji[2];
caidan();}
void shanchu()//删除
{cout<<"请输入想要删除的学生的学号或姓名"<<endl;
cin>>x;
if(x==1)
{cout<<"请输入姓名"<<endl;
cin>>student[50].xingming;}
if(x==2)
{cout<<"请输入学号"<<endl;
cin>>student[50].xuehao;}
for(int i=0;i<50;i++)
if(student[i].xingming==student[50].xingming||student[i].xuehao==student[50].xuehao)
student[i]=student[i+1];
cout<<endl<<"删除成功"<<endl;caidan();
}
void insert()//插入
{int x,j;
cout<<"请输入学生的学号、姓名、性别、3科成绩"<<endl;
cin>>student[50].xuehao;
for(int i=0;i<50;i++)
if(student[i].xuehao==student[50].xuehao)
{cin>>student[x].xingming;cin>>student[x].sex;
cin>>student[x].chengji[0];cin>>student[x].chengji[1];cin>>student[x].chengji[2];
student[x].zong=student[x].chengji[0]+student[x].chengji[1]+student[x].chengji[2];
student[x].pingjun=student[x].zong/3;{for(int j=49;j>=i;j--)
student[j+1]=student[j];
student[j]=student[x];
}}cout<<endl<<"插入成功"<<endl;
caidan();
}
void shuru(int n)//输入
{cout<<"请输入学生的学号、姓名、性别、3科成绩"<<endl;
cin>>student[n].xuehao;cin>>student[n].xingming;cin>>student[n].sex;
cin>>student[n].chengji[0];cin>>student[n].chengji[1];cin>>student[n].chengji[2];
student[n].zong=student[n].chengji[0]+student[n].chengji[1]+student[n].chengji[2];
student[n].pingjun=student[n].zong/3;n++;cout<<endl<<"输入成功"<<endl;void caidan();
}
void find()//查找
{;cout<<"请输入要查找学生的学号或姓名1.查找姓名  2.查找学号"<<endl;
cin>>x;
if(x==1)
{cout<<"请输入姓名"<<endl;
cin>>student[50].xingming;}
if(x==2)
{cout<<"请输入学号"<<endl;
cin>>student[50].xuehao;}
for(int i=0;i<50;i++)
if(student[i].xingming==student[50].xingming||student[i].xuehao==student[50].xuehao)
cout<<endl<<"学号:"<<student[i].xuehao<<"姓名:"<<student[i].xingming<<"性别:"<<student[i].sex<<"\n第一科成绩:"<<student[i].chengji[0]<<"第二科成绩:"<<student[i].chengji[1]<<"第三科成绩:"<<student[i].chengji[2];
caidan();
}
void sort()//排序
{
    int x;
    cout<<"有以下两种排序方式,请问您需要那种排序方式\n1.学号  2.总成绩"<<endl;
    cin>>x;
    switch(x)
{
    case 1:
    for(int j=0;j<n;j++)
    for(int i=0;i<n-j;i++)
    if(student[i].xuehao>student[i+1].xuehao)
    {student[50]=student[i];student[i]=student[i+1];student[i+1]=student[50];}
    cout<<"按学号从低到高排序后为"<<endl;
    for(int i=0;i<n+1;i++)
    cout<<student[i].xingming<<endl;break;
    case 2:
    {for(int j=0;j<n;j++)
    for(int i=0;i<n-j;i++)
    if(student[i].zong<student[i+1].zong)
    {student[50]=student[i];student[i]=student[i+1];student[i+1]=student[50];}}
    cout<<"按总成绩从高到低排序后为:\n";
    for(int i=0;i<n;i++)
    cout<<student[i].xingming<<endl;
}
    cout<<endl<<"排序成功"<<endl;void caidan();
}
void main()
{
    float num[50];
    for(int j=0;j<50;j++)
    num[j]=0;
    cout<<"菜单:1.输入  2.插入  3.排序  4.查找  5.删除  6.输出(请输入对应的序号)"<<endl;
    cin>>x;
    if(x!=1)
    cout<<"请先输入学生的信息,再进行其它类型的操作"<<endl;
    cout<<"请输入要输入的学生人数";
    cin>>n;
    cout<<"请输入学生的学号、姓名、性别、3科成绩"<<endl;
    for(int i=0;i<n;i++)
    {cout<<"请输入第"<<i+1<<"个学生的个人信息,请先输入学号,姓名,性别以及3科成绩"<<endl;
    cin>>student[i].xuehao;cin>>student[i].xingming;cin>>student[i].sex;
    for(int j=0;j<3;j++)
    {cin>>student[i].chengji[j];num[i]+=student[i].chengji[j];};student[i].zong=num[i];student[i].pingjun=num[i]/3;}
     caidan();
}

#预计效果

img

#这个程序还可以简化吗

insert() 函数中,xj 是没有初始化的。