请大家帮帮忙,看下小弟的C程序哪里出了错。谢谢!!

来源:百度知道 编辑:UC知道 时间:2024/05/21 10:48:33
程序如下:就是运行的时候Z会的结果是0没有进入switch()中去。
main()
{
float x,y,z;
char ch;
printf("please input x:");
scanf("%f",&x);
printf("please input ch:");
scanf("%c",&ch);
printf("please input y:");
scanf("%f",&y);
switch(ch)
{
case'+':z=x+y;break;
case'-':z=x-y;break;
case'*':z=x*y;break;
case'/':z=x/z;break;
default:printf("it error!");}
printf("%f\n",z);
}
case'/':z=x/y;break;
我是意思就是不能正常进行加减乘除运算。
请问这是什么原因。谢谢

printf("please input x:");
scanf("%f",&x);
printf("please input ch:");
scanf("%c",&ch);
printf("please input y:");
scanf("%f",&y);

分析下你这三句
第一句输入一个int,回车结束。
第2句输入一个char,回车结束。//问题出在这里

当你输入1回车+回车……的时候
第2个scanf收入的字符不是‘+’号,而是你的回车号。
你可以在case语句里面加一个
case'\n':printf("xxxxx");break;试试
所以switch肯定进default的。

你可以这么改:
scanf("%f,%c,%f",&x,&ch,&y);
输入为1逗号+逗号2回车。

哦,不过,上面说的不对,C类的语言是把回车当确定的,不会接受
我仍然不知道你说的程序有什么异常