我想在C++代码中比较这三个术语
i want to compare this three terms in C ++ code
如果C++中有这样的代码。
j = 5;
k[i] = j * ((k[i] > 0));
然后,如果k [i]
1
,那么(k [i]> 0)
就变成了1
。
所以最后一个k [i]
是5
.
如果k [i]
是-1
,那么(k [i]> 0)
就变成了0
。
所以最后一个k [i]
为零。
然后我想知道
j = 5;
k[i] = j * ((10 > k[i] > 0));
这里
如果k[i] = 5
,则k[i]
大于0
且小于10
。
这么(10> k [i]> 0) = 1
j * 1 = 5
?
我可以同时使用三个比较运算符吗?
谢谢。
它会编译,但它不起作用。你需要写(10 > k[i] && k[i] > 0)
没有 c++ 不支持同时将变量与多个值进行比较。 令人困惑的是,您的比较甚至可以编译,但它不会做您认为的那样。例如:
#include <iostream>
#include <string>
int main()
{
int b = 21;
if ( 5 < b < 20 )
{
std::cout << "OK";
}
else
{
std::cout << "Fail";
}
}
将编译(带有警告(,但将打印OK
而不是Fail
.正在发生的事情是,您实际上拥有:
if ( (5 < b) < 20 )
其计算结果为:
if ( true < 20 )
true
小于 20,因此比较返回 true。您需要完整说明要执行的比较:
#include <iostream>
#include <string>
int main()
{
int b = 21;
if ( (5 < b) && (b < 20) )
{
std::cout << "OK";
}
else
{
std::cout << "Fail";
}
}
相关文章:
- 模板-模板参数推导:三个不同的编译器三种不同的行为
- 在 2D 向量中使用第三个 [ ] 有什么意义?
- 如何通过按下第三个窗口中的按钮,将QString从一个窗口获取到另一个窗口
- 如何知道n!是否可以表示为三个连续数字的乘法?
- 我有三个 getline,但是一旦编译,输入就太多了
- 我遇到了黑客排名中的问题"TWO STRINGS"的三个测试用例的分段错误。原因是什么?
- 有没有更好的方法对C++中的三个整数进行排序?
- 如何检查第三个 API 是否在 Linux 中为 c/c++ 程序创建了一个新线程?
- 为什么 getch 在按下函数或箭头键时返回三个值?
- 使用三个数字比较器进行排序
- 我想在C++代码中比较这三个术语
- 我的动态链接队列在同一输出流中调用时不正确地输出三个返回函数
- 我该如何编码,使计算机知道两个名称条目和三个名称条目之间的区别
- 为什么我需要三个嵌套的大括号来调用赋值运算符,将const引用到二维数组
- 如何通过通用引用或std::forward将这三个c++模板函数合并为一个
- 首先处理第二个和第三个堆与第一个和第二个堆之间的逻辑差异
- 异常处理:如果用户输入不是三个特定字符之一
- 为什么将三个变量与 == 一起比较会计算为 false?
- 重载运算符 new 和运算符 delete 带有三个参数
- 有没有更简单的方法可以从用户那里获取三个数字并按升序打印它们?