马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
int main()
{
float a, b;
char ch;
printf("请输入式子:");
scanf("%f%c%f", &a, &ch, &b);
if (b == 0 && ch == '/')
{
printf("很遗憾,除数不能为零!");
}
else
switch (ch)
{
case '+':printf("结果是:%.2f",a + b);break;
case '-':printf("结果是:%.2f",a - b);break;
case '*':printf("结果是:%.2f",a * b);break;
case '/':printf("结果是:%.2f",a / b);break;
}
return 0;
}
上面是自己写的计算器
下面是小甲鱼的计算器#include <stdio.h>
#include <stdbool.h>
int main()
{
float op1, op2;
char ch;
float result;
bool invalid = false;
printf("请输入式子:");
scanf("%f %c %f", &op1, &ch, &op2);
switch (ch)
{
case '-': op2 = -op2; // no break
case '+': result = op1 + op2; break;
case '*': result = op1 * op2; break;
case '/':
if (op2 != 0)
{
result = op1 / op2;
break;
}
else
{
invalid = true;
break;
}
}
if (invalid)
{
printf("除数不能为零!\n");
}
else
{
printf("结果是:%.2f\n", result);
}
return 0;
}
问题1 : 请问我这种写法有什么弊端(小甲鱼写的,有没学过的,看不太明白)
问题2:1 / 8 = 0.13 除法运算输出结果为什么会四舍五入。不是应该直接丢弃两位以后的小数吗,是不是设置问题?(用小甲鱼的代码也是0.13,而课后作业的结果是0.12)
问题3:试着输入错误的式子,看看会出现什么样的结果,打印出的结果不理解。
加法:2 ++ 4 =6.00 三个加号以后,结果是2.00,即输入的a?;
减法:2 - - 4 =6.00 这里的两个减号进行了加法运算? 另外三个减号以后,结果是2.00,也是输入的a?;
乘法:2 ** 4 = 0.00
除法:2 // 4 : 家里电脑打印的结果是 #1.J(好像是这个,记不太清楚了), 小甲鱼的代码的结果是:除数不能为零!
另一台电脑打印结果是
这两个结果是怎么来的?
谢谢!!
|