我已经为我的Arduino制作了一个程序,它将按升序或降序排序五十个随机数的数组,我想我已经把它弄好了,但是当我运行它时,我收到一条错误消息"预计不合格的身份在'之前&#34 ;.
int array [50];
int i = 0;
void setup() {
Serial.begin(9600); // Load Serial Port
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println ("Position " + array[i]);
delay (2000);
}
for (i <= 50) { <-----*Here is where the error highlights*--->
int n = random (251); // Random number from 0 to 250
array[i] = n;
i++;
}
// Bubble sort function
void sort (int a[], int size) {
for(int i=0; i<(size-1); i++) {
for(int o=0; o<(size-(i+1)); o++) {
if(a[o] > a[o+1]) {
int t = a[o];
a[o] = a[o+1];
a[o+1] = t;
}
}
}
}
我已注释显示错误的位置。我需要通过这个来测试我的代码,我不知道如何解决它!
答案 0 :(得分:0)
你写错了。有for循环的伪代码:
for(datatype variableName = initialValue; condition; operation){
//your in loop code
}
//Code wich will be executed after end of for loop above
在您的情况下,它将如下所示:
for(int i = 0; i < 50 ; i++){
int n = random (251); // Random number from 0 to 250
array[i] = n;
}
另一件事是,您正在尝试迭代数组。第一个指数为0.这意味着最后一个指数是49而不是50 。如果您尝试访问第50个索引,则会导致程序崩溃。
最后一点是,我们谈论的for循环不是任何方法。它永远不会被执行。
答案 1 :(得分:0)
for循环需要三个部分参数:
每个部分应以分号分隔
所以你的for循环应该像这样开始:
for(int i = 0;i <= 50; i++){
//code here
}