第一个case1还没执行完就到case2中去了困惑
源代码太长了 上传不来
c++
switch(c){
while(1)
{
case 1:
{
menu_1();
scanf("%d",&c1);
system("cls");
switch (c1)
{
case 1:
{
ElemType a[]={1,2,3,4,5,6,7,8};
Create(sql,a,8);
break;
}
case 2:
{
ElemType x ;
int y;
printf("请输入要插入的元素及其位置(中间用空格隔开):\n");
scanf("%d%d",&x,&y);
Insert(sql , x , y);
}break;
case 3:
{
Delete(sql );
}break;
case 4:
{
Output(sql);
}break;
case 0:
{
}break;
}
case 2:
{
menu_2();
scanf("%d",&c2);
system("cls");
if(c2==0);
{
menu();
}
break;
}
case 3:
{
menu_1();
scanf("%d",&c3);
system("cls");
if(c3==0);
{
menu();
}
break;
}
case 4:
{
menu_4();
scanf("%d",&c4);
system("cls");
if(c4==0);
{
menu();
}
break;
}
case 5:
{
menu_5();
scanf("%d",&c5);
system("cls");
if(c5==0);
{
menu();
}
break;
}
case 6:
{
menu_6();
scanf("%d",&c6);
system("cls");
if(c6=1)
{
if(InitList(T)&&CreatList(T))
{
printf("创建成功\n");
}
printf("请输入要查找的关键字:\n");
scanf("%d",&key);
result=search1(T,key);
Show(result,key);
system("cls");
}
if(c6=2)
{
if(InitList(T)&&CreatList(T))
{
printf("创建成功\n");
}
printf("请输入要查找的关键字:\n");
scanf("%d",&key);
result=search2( T, key, 1, T.length);
Show(result,key);
}
if(c6==0);
{
menu();
}
break;
}
case 7:
{
menu_7();
scanf("%d",&c7);
system("cls");
if(c7==0);
{
menu();
}
break;
}
case 0:
{
printf("已退出系统!\n");
}
break;
}
}
你所有的case都不写break,这是什么写法
还有,while怎么能写在switch里面,好好粘代码,不要胡搞乱搞
源代码太长,你可以将其它case里的内容封装一下,以函数的方式调用,然后函数分别发出来,这样你自己也便于调试
不要一个函数里写好几百行的长代码