在 Arduino 中获取数组的最大值和最小值
为了获得 Arduino 中数组的最大值/最小值,我们可以运行一个简单的 for 循环。以下显示了两种实现方式。一种使用 Arduino 的 max() 和 min() 函数,另一种使用 > 和 < 运算符。
max 和 min 函数的语法如下:max(a,b) 和 min(a,b),它们分别返回 a 和 b 中的最大值和最小值。
实现 1 − 使用 > 和 < 运算符
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println();
int myArray[6] = {1, 5, -6, 4, -2, 7};
int maxVal = myArray[0];
int minVal = myArray[0];
Serial.print("Size of myArray is: "); Serial.println(sizeof(myArray));
for (int i = 0; i < (sizeof(myArray) / sizeof(myArray[0])); i++) {
if (myArray[i] > maxVal) {
maxVal = myArray[i];
}
if (myArray[i] < minVal) {
minVal = myArray[i];
}
}
Serial.print("The maximum value of the array is: "); Serial.println(maxVal);
Serial.print("The minimum value of the array is: "); Serial.println(minVal);
}
void loop() {
// put your main code here, to run repeatedly:
}实现 2 − 使用 max 和 min
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println();
int myArray[6] = {1, 5, -6, 4, -2, 7};
int maxVal = myArray[0];
int minVal = myArray[0];
Serial.print("Size of myArray is: "); Serial.println(sizeof(myArray));
for (int i = 0; i < (sizeof(myArray) / sizeof(myArray[0])); i++) {
maxVal = max(myArray[i],maxVal);
minVal = min(myArray[i],minVal);
}
Serial.print("The maximum value of the array is: ");
Serial.println(maxVal);
Serial.print("The minimum value of the array is: ");
Serial.println(minVal);
}
void loop() {
// put your main code here, to run repeatedly:
}输出
两种情况下的串口监视器输出为 -

正如您所见,sizeof() 函数返回的字节总数而不是数组中的元素数(我正在使用将 int 存储在 4 个字节中的板)。因此,在 for 循环中,条件一直保持为 -
i < (sizeof(myArray) / sizeof(myArray[0]))
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP