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的代码。你不知道我有多少次盯着这行。非常感谢。下次我肯定会使用记事本解决方案。