2D数组-将三个元素与if语句进行比较
2D array - compare three elements with if-statement
我不明白为什么foobar这个词不会被打印出来。
#include <iostream>
using namespace std;
int main(){
int a = 1;
int b = 1;
int c = 1;
if(a==b==c)
cout << "this line will be printed out ...n";
char ac = 'z';
char bc = 'z';
char cc = 'z';
if(a==b==c)
cout << "this line will be printed out ...n";
char array[3][3]={ {'a','a','a'},{'b','b','b'},{'c','c','c'} };
if(array[0][0] == array[0][1] == array[0][2]) {
// these lines will not be printed out
cout << array[0][0] << array[0][1] << array[0][2] << "n";
cout << "foobarn";
}
// aaa
cout << array[0][0] << array[0][1] << array[0][2] << "n";
}
我试过这样的方法:如果(*(array[0]+0)==*(array[0]++1)==*array[0]+2)依此类推但这也不起作用。
谢谢。
if(a==b==c)
这并不像你想象的那样。a == b
将返回true
或false
,然后将其与c
进行比较。如果你想比较多个项目,你需要这样做:
if (a == b && b == c)
你不能做
if(array[0][0] == array[0][1] == array[0][2])
你必须做这个
if(array[0][0] == array[0][1] && array[0][1] == array[0][2])
我知道第一个看起来很直观,但它并不像你想象的那样。它首先进行
array[0][0] == array[0][1]
它将返回true,然后它将比较数组[0][2]==1(true),这将是false。
在第一个if语句中
if(a==b==c)
cout << "this line will be printed out ...n";
由于以下原因执行输出。相等运算符从左到右分组。比较的结果a == b
是布尔值true
。然后将该值与c进行比较。它被转换为int值1。由于c也等于1,则执行具有cout的语句。
在secons if语句中
if(array[0][0] == array[0][1] == array[0][2])
首先将数组[0][0]与数组[0][1]进行比较。由于它们相等,则比较CCD_ 7的结果为布尔真。然后将此布尔值与数组[0][2]进行比较。再次,布尔值被转换为int值1,并与"a"(也被提升为int)进行比较。由于1不等于"a",则整个条件为false。
你的意思是以下
if( array[0][0] == array[0][1] && array[0][1] == array[0][2])
在这种情况下,条件的结果将等于true,因为数组[0][0]等于数组[0][1],而数组[0][1]等于数组[0][2]。
第一个if语句中的条件也应重写为
if(a==b && b==c)
那么它将不取决于c具有等于1的值。
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 使用strcpy将char数组的元素复制到另一个数组
- 使用不带参数的函数访问结构元素
- 给定n个元素的m个集合.在C++中找到出现在最大集合数中的元素
- C++如何通过用户输入删除列表元素
- lower_bound()返回最后一个元素
- 基于多个条件处理地图中的所有元素
- 调整大小后指向元素值的指针unordered_map有效?
- 我的简单if-else语句是如何无法访问的代码
- 使用std::transform将一个范围的元素添加到另一个范围中
- 使用函数"remove"删除重复元素
- 具有最大子序列大小的序列,每个元素都相同
- 如何将enable-if与模板参数和参数包一起使用
- c if-statement的最大值在数组中的最大值未指向正确的元素
- 2D数组-将三个元素与if语句进行比较
- 不使用 if 插入/更新 std::unordered_map 元素的最快方法是什么
- 如何使用 if 检查字符串数组的第一个元素第一个符号?
- 当堆栈仍有元素时,为什么跳过"if stack not empty"是有条件的?
- 我无法为数组的元素赋值(使用:for 循环和嵌套的 if 语句)