Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.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++_Arrays_Algorithm_Arduino - Fatal编程技术网

C++ 期望“;”在“[”标记之前

C++ 期望“;”在“[”标记之前,c++,arrays,algorithm,arduino,C++,Arrays,Algorithm,Arduino,我绝对不能理解我的代码可能有什么问题,但我可能遗漏了一些东西。我已经搜索了关于其他令牌的类似问题,但它们对我来说毫无用处。因为我的代码不是很长,我将继续在这里发布 unsigned int value; #include <Adafruit_NeoPixel.h> #ifdef __AVR__ #include <avr/power.h> #endif #define PIN 6 #define NUM_LEDS 60 #define BRIGHTNESS 10 Adaf

我绝对不能理解我的代码可能有什么问题,但我可能遗漏了一些东西。我已经搜索了关于其他令牌的类似问题,但它们对我来说毫无用处。因为我的代码不是很长,我将继续在这里发布

unsigned int value;
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN 6
#define NUM_LEDS 60
#define BRIGHTNESS 10
Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800);

void setup (){
Serial.begin(9600);
Serial.setTimeout(50000);
strip.begin();
strip.setBrightness(BRIGHTNESS);
strip.begin();
strip.show(); // Initialize all pixels to 'off'
}

void loop ()
{
boolean lights;
int value[100];

for(int i=0;i<100;i++){
value[i] = analogRead(0);
}

int j=SmallestElement(value);

if(value[j-1]-value[j]>=2 and value[j-1]-value[j]<=30) and value[j-2]-value[j-1]>=2 and value[j-2]-value[j-1]<=30 and value[j+1]-value[j]>50 and value[j+2]>value[j+1]){ //THE COMPILER IS NOT OKAY WITH THIS LINE
lights = true; //THE COMPILER HAS A PROBLEM WITH THE LINE ABOVE
}
else{
lights=false;
}

if(lights){    //if there is a characteristic drop
if(value[j]>=600 and value[j]<=699){
int   one=0;
for(int j=0;j<60;j++){
strip.setPixelColor(j,0,0,0);
}
for(int i=0;i<15;i++,one++){
strip.setPixelColor(one,0,255,0);
strip.show();
delay(10);
}
}
if(value[j]>=500 and value[j]<=599){
int    two1=0,two2=60;
for(int j=0;j<60;j++){
strip.setPixelColor(j,0,0,0);
}
for(int i=0;i<30;i++,two1++,two2--){
strip.setPixelColor(two1,255,255,0);
strip.setPixelColor(two2,255,255,0);
strip.show();
delay(10);
}
  }

}

  }

int SmallestValue(int values[100]){
int smallest = values[0];
for(int i=1;i<100;i++){
if(values[i]<smallest){
smallest=values[i];
}
  }
return smallest;
}

int SmallestElement(int values[100]){
int i=0;
while(values[i]!=SmallestValue(values){
  i++;
 }
 return i;
}

非常感谢您的帮助。

您的if语句的括号不匹配

您的代码:

if(
    value[j-1]-value[j]>=2 and 
    value[j-1]-value[j]<=30) and // <- Paren here closes the if(
    value[j-2]-value[j-1]>=2 and 
    value[j-2]-value[j-1]<=30 and 
    value[j+1]-value[j]>50 and 
    value[j+2]>value[j+1]){ 
    lights = true; 
}
else{
    lights=false;
}

记事本很好,但要利用IDE!

如果您正确格式化了代码,您很可能会发现错误。实际上,格式化是因为我不熟悉此处的代码格式。在我的编译器中,这一点非常清楚。在格式化后,您似乎有一个额外的…不熟悉…此处。在我的编译器中,这一点非常重要耳朵。-你是否剪切并粘贴代码,标记并键入Ctrl+K?看起来不太像。如果你打算编辑,请不要在粘贴前手动编辑包含制表符-de-tab的代码。你不知道我有多少次盯着这行。非常感谢。下次我肯定会使用记事本解决方案。