c语言课后作业有错叭小甲鱼
第12课的简单计算器,用1/0会输出两次,一次是计算错误另一次是一次强行计算的结果 在历害的人也有错,很正常。~!可以把相关问题私信给老师 ba21 发表于 2019-10-9 18:07在历害的人也有错,很正常。~!可以把相关问题私信给老师
也是吼 @小甲鱼 似乎并无问题:
麻烦提供一下编译环境、程序源码以及出错截图。 @小甲鱼 好像那个s1e13里的也有问题,要是字符串是0开头就不管用了 吃橘子 发表于 2019-10-10 18:13
@小甲鱼 好像那个s1e13里的也有问题,要是字符串是0开头就不管用了
@小甲鱼 吃橘子 发表于 2019-10-10 18:13
@小甲鱼 好像那个s1e13里的也有问题,要是字符串是0开头就不管用了
麻烦提供一下编译环境、程序源码以及出错截图。 zltzlt 发表于 2019-10-10 18:29
@小甲鱼
你验证了也是这样吗? 小甲鱼 发表于 2019-10-10 18:49
你验证了也是这样吗?
没有,我看到他没 @ 到你,就帮他重 @ 一遍(我并不会 C 语言) 12课显示 0.0 是 result 的初始值,不是强行计算的结果。
个人感觉没问题。
如果希望结果严谨的显示出来,可以这么做:
#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;
}
小甲鱼 发表于 2019-10-10 19:01
12课显示 0.0 是 result 的初始值,不是强行计算的结果。
个人感觉没问题。
谢谢小甲鱼老师{:5_109:}
页:
[1]