部分程序运行不了,但是程序调试时没有报错

学生宿舍管理系统排序功能用主函数调用不了,运行出现问题,请指点一下
代码如下:

#include 
#include 
#include 
#include 
#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];
//排序
void sort(struct student stu[],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("%5d,%5s,%5d,%5d,%5d\n",stu[i].num1,stu[i].name,stu[i].cla,stu[i].dorm,stu[i].num2);}
case 2:printf("退出");break;
}
}
int main()
{
int sum=100;
void sort();
return 0;
}

修改如下,供参考:

#include <stdio.h>
#include <string.h>
//#include
//#include
#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];
//排序
void sort(struct student stu[],int sum)//利用冒泡排序根据学号升序排列
{
    int i,j,a;
    struct  student t;
    printf("按学生学号排序\n");
    for(i=0;i<sum-1;i++)
    {
        for(j=0;j<sum-1-i;j++)
        {
            if(stu[j].num1>stu[j+1].num1)
            {
                t = stu[j];
                stu[j]=stu[j+1];
                stu[j+1]=t;
            }
        }
    }
    for(i=0;i<sum;i++)
        printf("%5d,%5s,%5d,%5d,%5d\n",stu[i].num1,
                stu[i].name,stu[i].cla,stu[i].dorm,stu[i].num2);
}
int main()
{
    int sum=10;
    sort(stu,sum);  //void sort();
    return 0;
}