使用if中的c 双重否定
Double negation in c++ using if
问题:
我正在从大学的引言问题集中练习,该问题是创建一个程序,其中用户介绍了四个变量a
,b
,c
,CC_3,d
和:如果a
在(c; d)
中,并且b
不在(c; d)
中,则程序应打印a
,b
和a+b
;否则应该打印a
,b
和a-b
:
我注意到,如果用户引入a
,b
,以使两个语句都是错误的,则它打印a+b
而不是a-b
。为什么会发生?
尝试:
#include<iostream>
using namespace std;
int main()
{int a,b,c,d;
cout<<"Introduza a: ";
cin>>a;
cout<<"Introduzca b: ";
cin>>b;
cout<<"Introduzca c: ";
cin>>c;
cout<<"Introduzca d: ";
cin>>d;
if( (c<a<d) && ((b<c || d<b)))
{cout<<"a= " <<a <<"n";
cout<<"b= " <<b << "n";
cout<<"a+b= " <<a+b <<"n";
}
else
{cout<<"a=" <<a <<"n";
cout<<"b= " <<b <<"n";
cout<<"a-b= " <<a-b <<"n";}
}
在诸如C ,C,Java,php等编程语言中。类似(c<a<d)
之类的东西分布在(c < a && a < d)
上。第二件事是您在此处不需要双重括号。整个行:
if( (c<a<d) && ((b<c || d<b)))
应该看起来像:
if (c < a && a < d && (b < c || d < b))
希望这会有所帮助!!!!
澄清每个评论:我在数学中的意思是您用编程语言编写a < b < c
,您将其写为a < b && b < c
。在编程中,a < b < c
与(a < b) < c
相同,这在依次表示a
小于b
,它将返回1
,从而产生1 < c
。如果a
更大或等于b
a < b
将返回0
,从而产生0 < c
。
相关文章:
- 如何删除peer if else分支中的冗长句子
- 比较if语句中的数组值和int值
- 以在Qt中的IF语句中设置时间延迟
- c++:定义if语句中的模板
- 如果中的多个语句是否与多个 if 相同?
- if 子句中的赋值不起作用
- -> if (C++) 中的运算符
- 在 C++ 中的 if-else if- else 语句期间更改变量
- 避免在 C++ 中的 if 语句中递增
- do while 循环中的 if 语句以 yes 或 no 结尾
- C++ 中的"if"语句不会从左到右计算条件
- 将 if 语句中的字符与 or 进行比较
- 优化/减少 if 语句中的条件表达式
- 什么可以用来替换代码中的循环和 if 语句?
- 结构声明中的 if 语句C++
- 使用if中的c 双重否定
- 如何处理 IF 中的多个 OR 条件
- 在执行其中的代码之前,是否处理了 if 中的所有逻辑 OR 分隔检查?
- 块"If"中的代码不会运行,即使使其为 false 的条件在块内
- 嵌套if中的作用域不明确