【发布时间】:2021-01-08 16:03:54
【问题描述】:
我需要一些关于一段代码的帮助。 我有一个数组,我们称它为数组 [4]。 现在我想检查这个数组的至少 3 个元素是否高于阈值。 (if 语句)
例如
if(2 > ((array[0] > threshold) + (array[1] > threshold) + (array[2] > threshold) + (array[3] > threshold) ))
Misra 在这里抱怨。 (规则 10.1 不允许的操作数运算符“+”) 有没有另一种方法来编写这个 if 语句而不检查所有可能的排列?
干杯
【问题讨论】:
-
cond ? 1 : 0将布尔值cond转换为 int。 -
if ( 2 > ... )将检测到 小于 2 而不是 至少 3 该数组的元素高于阈值。你有你的尤达错误的方式!