排序的代码运行不了程序还没报错

排序运行不了,请各位帮忙改一下

//函数声明
#include 
#include 
#include 
void welcome();//欢迎界面
void PrimaryMenu();//进入页面,主菜单
void secondMenu();//功能菜单
void logon();//注册
void login();//登录
void get();//录入
void sort();//排序


//结构体,储存学生宿舍信息
#define N 9 //设定的所有信息的长度。之后修改所有的字符长度设定都应该与结构体的设定一样
struct student
{
    char name [N];//学生名字
    int  num1[N];//学号
    int  cla[N];//班级
    int  dorm[N];//宿舍编号
    char title[N];//宿舍名字
    int num2[N];//楼号
}stu[100]; 
//结构体,储存用户注册信息                         
struct user
{
    char username[20];
    char password[20];
}User;

//全局变量
    int sum=0;//学生总人数





//欢迎
void welcome()
{
    printf("\t|——————————————————|\n");
    printf("\t|------------------------------------|\n");
    printf("\t|----------高校学生管理系统----------|\n");
    printf("\t|************************************|\n");
    printf("\t|------------版本:V1.0--------------|\n");
    printf("\t|--------开发时间:2022/11/17--------|\n");
    printf("\t|------------------------------------|\n");
    printf("\t|——————————————————|\n");
}
//登陆菜单
void PrimaryMenu()
{
    printf("\n");
    printf("\t---------------1.注册-----------------\n");
    printf("\t---------------2.登录-----------------\n");
}
//功能菜单
void secondMenu()
{
    printf("------------------您的操作-------------------\n");
    printf("------------------a.导入---------------------\n");
    printf("------------------b.删除---------------------\n");
    printf("------------------c.查询---------------------\n");
    printf("------------------d.排序---------------------\n");
    printf("------------------e.修改---------------------\n");
}

//宿管注册
void logon()
{
    printf("请输入用户名:");
    scanf("%s",User.username);
    printf("请输入密码:");
    scanf("%s",User.password);
}

//登录
void login()
{
    int n=0;//记录登录次数
    char username[20],password[20];
    do 
    {
        printf("请输入用户名:");
        scanf("%s",username);
         printf("请输入密码:");
        scanf("%s",password);
        if ((strcmp(username,User.username))==0&&((strcmp(password,User.password))==0))
        {
                printf("    正在登陆,请稍等\n");
                printf("********************************\n");
                printf("登录成功!\n");
                break;
        }
        else 
        {
            printf("用户名名或密码错误(仅有三次机会)\n");
             printf("请重新输入用户名或密码.\n");
            n++;
        }
    }while(n<=3);
        if(n>3)
        {
            printf("登录失败!!!\n");
        }
}

//导入功能
void get()
{
    int i,j;//通过i循环录入,j是每次添加的学生人数
    int sum=0;//学生总人数struct student stu[100];
    printf("请输入录入学生人数(少于100人):");
    scanf("%d", &j);
    
    for(i=0;i//循环录入学生信息
    {
        
        printf("请输入第%d位学生学号:",i+1);
        scanf("%d", &stu[i].num1);
        printf("请输入第%d位学生姓名:",i+1);
        scanf("%s", stu[i].name);
        printf("请输入第%d位学生的班级:",i+1);
        scanf("%d",&stu[i].cla);
        printf("请输入第%d位学生的宿舍编号:",i+1);
        scanf("%d",&stu[i].dorm);
        printf("请输入第%d位学生的宿舍名字:",i+1);
        scanf("%s", stu[i].name);
        printf("请输入第%d位学生的楼号:",i+1);
        scanf("%d", &stu[i].num2);   
        printf("\n");
        sum++;
    }
    printf("系统中总共学生人数是%d\n",sum);
    printf("录入完成!\n");

}
void sort(int sum)//利用冒泡排序根据学号升序排列
{
int i,j,a;
struct  student t;
printf("请再次输入数字1或2\n");
printf("输入1排序,2退出\n");
scanf("%d",&a);
switch(a)
{
case 1:printf("按学生学号排序\n");
  for(i=0;i-1;i++)
  for(j=i+1;jif(stu[i].num1>stu[j].num1)
  {
  t=stu[i];
  stu[i]=stu[j];
   stu[j]=t;
  }
       }
for(i=0;iprintf("%d,%s,%d,%d,%d\n",stu[i].num1,stu[i].name,stu[i].cla,stu[i].dorm,stu[i].num2);}
case 2:printf("退出");break;
}
}


//主函数
int main()
{
   
    welcome();//欢迎
    PrimaryMenu();//进入页面
    logon();//注册
    login();//登录
    secondMenu();//功能菜单


    get();//录入

    sort(stu,sum);
    return 0;
}

```

修改如下,供参考:

//函数声明
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void welcome();//欢迎界面
void PrimaryMenu();//进入页面,主菜单
void secondMenu();//功能菜单
void logon();//注册
void login();//登录
void get();//录入
void sort();//排序
//结构体,储存学生宿舍信息
#define N 9 //设定的所有信息的长度。之后修改所有的字符长度设定都应该与结构体的设定一样
struct student
{
    char name [N];//学生名字
    int  num1;    //学号   //[N] 修改
    int  cla;     //班级   //[N] 修改
    int  dorm;    //宿舍编号//[N]修改
    char title[N];//宿舍名字
    int num2;     //楼号   //[N] 修改
}stu[100];
//结构体,储存用户注册信息
struct user
{
    char username[20];
    char password[20];
}User;
//全局变量
int sum=0;//学生总人数
//欢迎
void welcome()
{
    printf("\t|——————————————————|\n");
    printf("\t|------------------------------------|\n");
    printf("\t|----------高校学生管理系统----------|\n");
    printf("\t|************************************|\n");
    printf("\t|------------版本:V1.0--------------|\n");
    printf("\t|--------开发时间:2022/11/17--------|\n");
    printf("\t|------------------------------------|\n");
    printf("\t|——————————————————|\n");
}
//登陆菜单
void PrimaryMenu()
{
    printf("\n");
    printf("\t---------------1.注册-----------------\n");
    printf("\t---------------2.登录-----------------\n");
}
//功能菜单
void secondMenu()
{
    printf("------------------您的操作-------------------\n");
    printf("------------------a.导入---------------------\n");
    printf("------------------b.删除---------------------\n");
    printf("------------------c.查询---------------------\n");
    printf("------------------d.排序---------------------\n");
    printf("------------------e.修改---------------------\n");
}
//宿管注册
void logon()
{
    printf("请输入用户名:");
    scanf("%s",User.username);
    printf("请输入密码:");
    scanf("%s",User.password);
}
//登录
void login()
{
    int n=0;//记录登录次数
    char username[20] ,password[20];
    do 
    {
        printf("请输入用户名:");
        scanf("%s",username);
         printf("请输入密码:");
        scanf("%s",password);
        if ((strcmp(username,User.username))==0&&((strcmp(password,User.password))==0))
        {
                printf("    正在登陆,请稍等\n");
                printf("********************************\n");
                printf("登录成功!\n");
                break;
        }
        else
        {
            printf("用户名名或密码错误(仅有三次机会)\n");
             printf("请重新输入用户名或密码.\n");
            n++;
        }
    }while(n<=3);
        if(n>3)
        {
            printf("登录失败!!!\n");
        }
}
//导入功能
void get()
{
    int i,j;//通过i循环录入,j是每次添加的学生人数
            //int sum=0;//学生总人数struct student stu[100]; 修改
    printf("请输入录入学生人数(少于100人):");
    scanf("%d", &j);
    for(i=0;i < j;i++)//循环录入学生信息  修改
    {
        printf("请输入第%d位学生学号:",i+1);
        scanf("%d", &stu[i].num1);
        printf("请输入第%d位学生姓名:",i+1);
        scanf("%s", stu[i].name);
        printf("请输入第%d位学生的班级:",i+1);
        scanf("%d",&stu[i].cla);
        printf("请输入第%d位学生的宿舍编号:",i+1);
        scanf("%d",&stu[i].dorm);
        printf("请输入第%d位学生的宿舍名字:",i+1);
        scanf("%s", stu[i].title); // scanf("%s", stu[i].name); 修改
        printf("请输入第%d位学生的楼号:",i+1);
        scanf("%d", &stu[i].num2);   
        printf("\n");
        sum++;
    }
    printf("系统中总共学生人数是%d\n",sum);
    printf("录入完成!\n");
}
void sort(struct  student stu[],int sum)//利用冒泡排序根据学号升序排列 //void sort(int sum)
{
    int i,j,a;
    struct  student t;
    printf("请再次输入数字1或2\n");
    printf("输入1排序,2退出\n");
    scanf("%d",&a);
    switch(a)
    {
        case 1:printf("按学生学号排序\n");
               for(i=0;i < sum - 1;i++){   //(i=0;i-1;i++) 修改
                   for(j=0;j < sum - 1 - i;j++)
                       if(stu[j].num1>stu[j+1].num1)//(stu[i].num1>stu[j].num1)修改
                       {
                           t=stu[j];    // t=stu[i];      修改
                           stu[j]=stu[j+1]; //stu[i]=stu[j]; 修改
                           stu[j+1]=t;     //stu[j]=t;      修改
                       }
               }
               for(i=0;i < sum;i++) {
                   printf("%d,%s,%d,%d,%d\n",stu[i].num1,
                       stu[i].name,stu[i].cla,stu[i].dorm,stu[i].num2);
               }
               break;
        case 2:printf("退出");break;
    }
}
//主函数
int main()
{
    welcome();//欢迎
    PrimaryMenu();//进入页面
    logon();//注册
    login();//登录

    secondMenu();//功能菜单
    get();//录入
    sort(stu,sum);

    return 0;
}