线程‘win32’(0x77c8)已退出,返回值为1(0x1),是什么呢?该如何解决呢?

vs2010
在功能表先选择1输入数据后,再选择2的时候会出现闪退的情况,并且会出现三行线程已退出,返回值为1的输出,不是很清楚怎么解决。
程序部分源代码:
void main()
{
​LinkQueue q1,q2;
​InitQueue(q1);
​InitQueue(q2);
​int a[13][2],m,n;
​int b[40],l=0,k=0;
​int psum=0,bsum=0;
​int flag;
​int time;
​int x;
​cout<<"请输入今日校车时刻表:"<<endl;
​cout<<"(时间格式为2位小时数(00-23)和2位分钟数(00-59),如0720)"<<endl;
​for(m=0;m<13;m++)
​​for(n=0;n<2;n++)
​​​cin>>a[m][n];//输入校车时刻表
​cout<<"请注意发车时间表!"<<endl;
​cout<<"若未到发车时间,人数已满,则可安排发车."<<endl;
​cout<<"若已到发车时间,人数未满,也应安排发车."<<endl;
​do {
​ cout<<"功能表:"<<endl;
​ cout<<"1---乘客到校车站进行登记"<<endl;
​ cout<<"2---乘客上车"<<endl;
​ cout<<"3---命令校车发车"<<endl;
​ cout<<"4---输出当前乘客排队情况"<<endl;
​ cout<<"5---查看今日乘客数量以及发车数量"<<endl;
​ cout<<"6---结束程序运行"<<endl;
​ cout<<"请输入你的选择(1-6):";
​​do {
​​​cin>>flag;
​​​if(flag<1 || flag>6) cout<<"输入错误,请重新输入:";
​​} while(flag<1 || flag>6);
​​switch(flag) {
​​case 1:
​​​cout<<"请输入乘客的学号和工号,假定001--100为教师,否则为学生."<<endl;
​​​cout<<"可以输入多位乘客,用空格分开,直到输入-1为止."<<endl;
​​​while(1){
​​​​
​​ cin>>x;
​​ if(x==-1) break;
​​ if(x<100) EnQueue(q1,x);
​​ else EnQueue(q2,x);
​​​} break;
​​case 2:
​​​if(EmptyQueue(q1)&&EmptyQueue(q2))
​​​​cout<<"暂无乘客需要乘坐校车"<<endl;
​​​else {
​​​​while(!EmptyQueue(q1)&&l<40) {
​​​​​b[l]=OutQueue(q1);
​​​​​l++;
​​​​}
​​​​while(!EmptyQueue(q2)&&l<40) {
​​​​​b[l]=OutQueue(q2);
​​​​​l++;
​​​​}
​​​}
​​​if(l<=40&&EmptyQueue(q1)&&EmptyQueue(q2))
​​​​cout<<"教师已全部上车,学生已全部上车."<<endl;
​​​else {
​​​​while(!EmptyQueue(q2)&&k<40) {
​​​​​b[k]=OutQueue(q2);
​​​​​k++;
​​​​}
​​​​cout<<"教师已全部上车,学生已全部上车."<<endl;
​​​} break;