求大神们指点
#include <stdio.h>main()
{
char ch;
float a,b,c;
printf("请输入式子\n");
scanf("%.2f %c %.2f",&a,&ch,&b);
switch(ch)
{
case '+' :c=a+b; printf("结果是%.2f",c);break;
case '-' :c=a-b; printf("结果是%.2f",c);break;
case '*' :c=a*b; printf("结果是%.2f",c);break;
case '/'
if(b==0)
{
printf("除数不为零");
}
else
{
c=a/b;
printf("结果是%.2f",c);
}
}
} 你的
case '/'
后面没加 ':'
应该是
case '/': 谢谢大神,但是我发现我输出不出结果 fuze11 发表于 2020-4-21 22:25
谢谢大神,但是我发现我输出不出结果
你确定是输入进去了吗?
scanf("%.2f %c %.2f",&a,&ch,&b);
连续输入很容易出问题的{:5_109:} scanf格式化字符最好只写格式化字符,不添加任何其他字符,也就是最好把空格去掉,
不过这不是错误所在,错误的原因是你规定了输入浮点数的小数位数,这是不对的,使用scanf是,不能规定输入浮点数的小数位数。
另外一个问题,二楼已经说了,case '/'后面少一个冒号 fuze11 发表于 2020-4-21 22:25
谢谢大神,但是我发现我输出不出结果
感觉你问题在于 scanf 输入时,中的格式化不建议加 .2 如 %.2f,就会出错
你把 .2 去掉就可以了
如果你想保留两位小数的话那就 在输出的时候 %.2f 即可 谢谢大神们,我懂了
页:
[1]