|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
这个是课后作业老师的源码,想求问大佬们,为什么不能计算小数呢?我看见强制转换了float类型呀,编译器没有报错,只是计算小数会显示0.00,是switch不能计算小数吗?
#include <stdio.h>
#include <stdbool.h>
int main()
{
int op1, op2;
char ch;
float result;
bool invalid = false;
printf("请输入式子:");
scanf("%d %c %d", &op1, &ch, &op2);
switch (ch)
{
case '-': op2 = -op2; // no break
case '+': result = (float)op1 + op2; break;
case '*': result = (float)op1 * op2; break;
case '/':
if (op2 != 0)
{
result = (float)op1 / op2;
break;
}
else
{
invalid = true;
break;
}
}
if (invalid)
{
printf("除数不能为零!\n");
}
else
{
printf("结果是:%.2f\n", result);
}
return 0;
}
- #include <stdio.h>
- #include <stdbool.h>
- int main()
- {
- //int op1, op2;
- float op1, op2;
- char ch;
- float result;
- bool invalid = false;
- printf("请输入式子:");
- //scanf("%d %c %d", &op1, &ch, &op2);
- scanf("%f %c %f", &op1, &ch, &op2);
- switch (ch)
- {
- case '-': op2 = -op2; // no break
- case '+': result = (float)op1 + op2; break;
- case '*': result = (float)op1 * op2; break;
- case '/':
- if (op2 != 0)
- {
- result = (float)op1 / op2;
- break;
- }
- else
- {
- invalid = true;
- break;
- }
- }
- if (invalid)
- {
- printf("除数不能为零!\n");
- }
- else
- {
- printf("结果是:%.2f\n", result);
- }
- return 0;
- }
复制代码
|
|