嵌套switch怎么不行啊

来源:百度知道 编辑:UC知道 时间:2024/05/16 19:20:05
void fs()
{char y;
switch(y)
{case 'y':printf("yse!");break;
case 'n':printf("no!");break;
default:printf("cuo!");
}}
main()
{char x,y;
printf("qing xuan zhe!");
scanf("%c",&x);
switch(x)
{case'1':fs();break;
case'2':printf("hao");
case'3':printf("hen hao");
default:printf("cuo!");
}getch();
}这个程序怎么得不到case'1'的那个结果?
怎么解决这个问题呢?

y是局部变量,fs函数中的y变量没有赋值动作,函数调用中也没有值传递,因此总是执行default那句。
这样解决,参数你可以在调用时指定其他的。
void fs(char y)
{
switch(y)
{case 'y':printf("yse!");break;
case 'n':printf("no!");break;
default:printf("cuo!");
}}
main()
{char x,y;
printf("qing xuan zhe!");
scanf("%c",&x);
switch(x)
{case'1':fs('y');break;
case'2':printf("hao");
case'3':printf("hen hao");
default:printf("cuo!");
}getch();

fs函数中的y没有固定的值
所以程序有误
应给y一个确定的值