C 检查所有int数组元素是否等于特定数字的最短代码?
用if..else语句检查所有int数组元素是否等于某些数字的最短方法是什么?例如,在伪代码中:C 检查所有int数组元素是否等于特定数字的最短代码?,c,arrays,arduino,equality,C,Arrays,Arduino,Equality,用if..else语句检查所有int数组元素是否等于某些数字的最短方法是什么?例如,在伪代码中: if (allElementsOfIntArray == -1) //do something else if (allElementsOfIntArray == 1) //do something else 我还有另一个变量是const int arraySize 我的Arduino代码在这一点上变得非常混乱,所以我只是想找到最短的方法来实现它,这样对其他必须阅读它的人来说就不会显得一
if (allElementsOfIntArray == -1)
//do something
else if (allElementsOfIntArray == 1)
//do something else
我还有另一个变量是const int arraySize
我的Arduino代码在这一点上变得非常混乱,所以我只是想找到最短的方法来实现它,这样对其他必须阅读它的人来说就不会显得一团糟了
bool all_are(int* i_begin, std::size_t sz, int x)
{
const int* i_end = i_begin + sz;
for(; i_begin != i_end; ++i_begin)
if(*i_begin != x) return false;
return true;
}
突然想到的最快方法(假设数组未排序)就是遍历它并检查每个元素。你可以用几种方法来做到这一点。对循环使用正常的
,或对每个
尝试一个 突然想到的最快方法(假设数组未排序)就是遍历它并检查每个元素。你可以用几种方法来做到这一点。对
循环使用正常的,或对每个
尝试一个 首先检查所有条目是否相同,然后检查开关()
:
for(int i=1;i首先检查所有条目是否相同,然后检查switch()
:
用于(int i=1;i数组中的每个元素都独立于其他元素。因此必须使用for来检查所有元素以确保。数组中的每个元素都独立于其他元素。因此必须使用for来检查所有元素以确保。在for
语句中缺少i_end
。在for
语句中缺少i_end
耳鼻喉科。
if (all_are(my_array, arraySize, -1))
//do something
else if (all_are(my_array, arraySize, 1))
//do something else
for (int i=1; i<arraysize; i++)
if (theArray[0] != theArray[i]) return "no way";
/*** All array elements are the same, so we can evaluate any element ***/
switch (theArray[0])
{
case 0:
return "All are zero";
case 1:
return "All are one";
default:
return "All elements are the same";
}