|
发表于 2023-1-18 17:51:25
|
显示全部楼层
本帖最后由 ExiaGN001 于 2023-1-31 21:21 编辑
你再试试.
解释一下:=和==在Cpp/C中是两个运算符,
[左值=同型常量/变量]是将右值赋给左值,
[左表达式==右表达式]是判断两者是否相等,是1否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==true) //有改
- {
- printf("该公式无效!\n");
- invalid=false;// 建议加上,为了不影响下次判断
- }
- else
- {
- printf("结果为:%d\n",result);
- }
- return 0;
-
- }
复制代码
lz好像不看,自up一下。 |
|