Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在随机数列表中查找大于或小于的元素_C++_Loops_Automation_Arduino Ide - Fatal编程技术网

C++ 如何在随机数列表中查找大于或小于的元素

C++ 如何在随机数列表中查找大于或小于的元素,c++,loops,automation,arduino-ide,C++,Loops,Automation,Arduino Ide,我有一个元素列表(随机数字),这些元素在输出时不断变化(100个索引),我想做的是,如果输出时生成的任何数字(即使有一个)等于或大于数字“27”,则打开led,但如果数字都小于“27”,则关闭led。我为其创建的逻辑不起作用,即使我得到的数字输出高于值27(如25,26.5,27.8,23,29.01,30.87,23…等等),LED仍然没有准确地打开。以下是我在Arduino的代码部分: for (int x = 0 ; x < 101 ; x++) { Serial.

我有一个元素列表(随机数字),这些元素在输出时不断变化(100个索引),我想做的是,如果输出时生成的任何数字(即使有一个)等于或大于数字“27”,则打开led,但如果数字都小于“27”,则关闭led。我为其创建的逻辑不起作用,即使我得到的数字输出高于值27(如25,26.5,27.8,23,29.01,30.87,23…等等),LED仍然没有准确地打开。以下是我在Arduino的代码部分:

 for (int x = 0 ; x < 101 ; x++)  
  {
    Serial.print("Pixel ");
    Serial.print(x);
    Serial.print(": ");
    Serial.print(myList[x], 2); #myList has got the 100 random numeric values
    Serial.print("C");
    Serial.println();
    if(myList[x<100]>=27) 
       digitalWrite(ledPin, HIGH);  
    if(myList[x<10]<27) 
       digitalWrite(ledPin, LOW);     

  }
for(int x=0;x<101;x++)
{
串行打印(“像素”);
连续打印(x);
连续打印(“:”);
Serial.print(myList[x],2)#myList获得了100个随机数值
连续打印(“C”);
Serial.println();
if(myList[x=27)
数字写入(ledPin,高电平);

if(myList[x解决问题的一种可能方法是在数组中找到最大值。这可以通过在数组上单次传递(循环)来完成

如果最大值小于
27
,则所有值都小于
27

如果最大值等于或大于
27
,则满足该条件


当您找到一个大于
27
的值时,您可以通过打破循环来“优化”这一点,并且您不需要找到更大的值。

这是一个简单的搜索算法,它可以帮助您:

void loop{
    ...
    ...
    ...
    boolean found = false;
    int x = 0;
    while(x<101 && !found){
        if(myList[x]>=27){
            found = true;
        }
         x++;
    }
    if(found) digitalWrite(ledPin, HIGH);
    else digitalWrite(ledPin, LOW);
}
void循环{
...
...
...
布尔值=false;
int x=0;
while(x=27){
发现=真;
}
x++;
}
如果(发现)数字写入(ledPin,高);
else数字写入(ledPin,低电平);
}

myList[x
myList[x]
表达式
x
myList的类型是什么
?因为从其用法来看,它必须是
bool myList[]
。我指的是
xAlso的用法。请注意,当
x==100
时,您实际上是在访问元素编号101,因为索引是以零为基础的。哦,好吧。您知道如何在arduino中找到最大值吗?@hns A
用于
循环和
比较?尝试了这个!它使LED闪烁,带有随机数above和27以下,但如果100个数字中有1个或多个大于27,则不常亮起LED。是否有其他方法检查myList[x]中是否有大于27的值,其中x在0和100之间?myList[x=27)的逻辑不正确?不,当使用数组时,必须使用索引[]“X关于求解……您可以将
boolean found=false
置于函数循环之外,但一旦led亮起,它将一直亮起,直到您指定何时关闭(例如:当数组“myList”更改时)