c语言问题,这个代码为什么会出现运行错误,运行结果完全正确。

#include<stdio.h>intmain(){inta,b,s;charop;scanf("%d%c%d",&a,&op,&b);if(op=='/'&&b==0... #include<stdio.h>
int main()
{
int a, b, s;
char op;
scanf("%d %c %d", &a, &op, &b);
if (op == '/'&&b == 0)printf("Invalid\n");
if (op == '%'&&b == 0)printf("Invalid\n");
switch (op)
{
case '+':s = a + b; break;
case '-':s = a - b; break;
case '*':s = a*b; break;
case '/':s = a / b; break;
case '%':s = a%b; break;
}
printf("%d %c %d = %d\n", a, op, b, s);
return 0;
}
运行1 / 0时,出现结果后,会出现exe已停止工作的对话框
展开
 我来答
百度网友9db9d2d7
2018-04-14 · 超过15用户采纳过TA的回答
知道答主
回答量:47
采纳率:57%
帮助的人:18.9万
展开全部


我的不会,你指的是什么错误,非法输入,溢出还是?

追答
1/0肯定会抛出错误,你有没catch,自然停止了,可以加个catch,或者对于除数0加一个判断
匿名用户
2018-04-14
展开全部
虽然输出的"Invalid", 但是后面继续执行了1/0
应该在输出错误后退出程序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
GTA小鸡
高粉答主

2018-04-14 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.3亿
展开全部
什么叫运行错误,运行结果又正确?你到底想表达什么?
更多追问追答
追问
运行1 / 0时,出现结果后,会出现exe已停止工作的对话框
追答
if ((op == '/' || op == '%') && b == 0)
{
    printf("Invalid\n");
    return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式