【发布时间】:2016-02-10 12:56:36
【问题描述】:
在C中, 检查布尔表中的所有值是否为真的最好和最简单的方法是什么? 我尝试了类似的方法,但它不起作用
for(i = 0; i < value; i++){
if(bool_table[i] == 0)
table_true = 0;
else
table_true = 1;
}
这段代码的问题是,有时如果第一个值为真,那么它会设置table_true = 1
【问题讨论】:
-
"那么它将设置
table_true = 1" 怎么可能?我会写if (bool_table[i] == 0) { table_true = 0; break; },只是为了效率。 -
如何初始化
table_true变量?确保给出一个初始值,否则你会得到一个未初始化的值。 -
在循环之前,添加
table_true = 1;,但为了更高效而不是条件,您可以在循环中添加table_true &= bool_table[i]。 -
另外,你也可以在找到
false元素后立即从循环中break,因为检查后续元素不能改变结果。 -
天哪。您的编辑使情况变得更糟。以前的 cmets 基于您问题的原始版本,这是一个更好的开始。你现在所拥有的总会给你
bool_table[value - 1]的价值。