为什么第二个switch语句编译器会直接跳过,连同第二个switch语句上面的scanf语句也是,只显示scanf上面的,过了第二个switch语句,后面的都能
int ChangeMessage()//修改航班信息//{
int h,y/*修改的数组的位置*/,w=1;
char q[10],v;
printf("请输入你要修改的航班号:");
scanf("%s",q);
for(h=0;h<all;h++)
{
w=strcmp(q,Plane[h].PlaneNum);
if(w==0)
{
w=0;
y=h;
break;
}
}
switch(w)
{
case 0:
printf("1.航班号\n");
printf("2.起飞地点\n");
printf("3.起飞时间\n");
printf("4.降落地点\n");
printf("5.降落时间\n");
printf("6.机票价格\n");
printf("7.最大载客数\n");
printf("请选择你要修改的内容:");
scanf("%c",&v/*choice*/);
switch(v/*choice*/)
{
case '1':
printf("请重新输入航班号:");
scanf("%s",Plane[y].PlaneNum);//之后可试试把y改为h//
break;
case '2':
printf("请重新输入起飞地点:");
scanf("%s",Plane[y].UpPlace);
break;
case '3':
printf("请重新输入起飞时间:");
scanf("%s",Plane[y].UpTime);
break;
case '4':
printf("请重新输入降落地点:");
scanf("%s",Plane[y].DownPlace);
break;
case '5':
printf("请重新输入降落时间:");
scanf("%s",Plane[y].DownTime);
break;
case '6':
printf("请重新输入机票价格:");
scanf("%d",&Plane[y].Price);
break;
case '7':
printf("请重新输入最大载客数");
scanf("%d",&Plane[y].MaxAmout);
break;
}
printf("信息修改成功!\n");
printf("按1继续修改航班信息。\n按2返回目录。\n");
printf("请选择:");
scanf("%c",&choice);
if(choice=='1')
ChangeMessage();
if(choice=='2')
back();
break;
case 1:
printf("没有你要修改的航班,请确认航班的存在再作修改。\n");
printf("按1继续修改航班信息。\n按2返回目录。\n");
printf("请选择:");
scanf("%c",&choice);
if(choice=='1')
ChangeMessage();
if(choice=='2')
back();
break;
}
}
[ 本帖最后由 mO丶 于 2014-2-10 17:57 编辑 ]