在 Arduino 中获取数组的最大值和最小值
arduinoarduino boardsarduino idearduino programming language
为了在 Arduino 中获取数组的最大值/最小值,我们可以运行一个简单的 for 循环。下面显示了两个实现。一个使用 Arduino 的 max() 和 min() 函数,另一个使用 > 和 < 运算符。
max 和 min 函数具有以下语法:max(a,b) 和 min(a,b),它们分别返回 a 和 b 中的最大值和最小值。
实现 1 − 使用 > 和 < 运算符
void setup() { // 将您的设置代码放在此处,运行一次: Serial.begin(9600); Serial.println(); int myArray[6] = {1, 5, -6, 4, -2, 7}; int maxVal = myArray[0]; int minVal = myArray[0]; Serial.print("myArray 的大小为:"); 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("数组的最大值是: "); Serial.println(maxVal); Serial.print("数组的最小值是: "); Serial.println(minVal); } void loop() { // 将您的主要代码放在此处,以便重复运行: }
实现 2 −使用最大值和最小值
void setup() { // 将您的设置代码放在此处,运行一次: 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("数组的最大值是:"); Serial.println(maxVal); Serial.print("数组的最小值是:"); Serial.println(minVal); } void loop() { // 将您的主代码放在此处,以便重复运行: }
输出
两种情况下的串行监视器输出均为 −
如您所见,sizeof() 函数返回的是总字节数,而不是数组中的元素数(我使用的是将 int 存储在 4 个字节中的电路板)。因此,在 for 循环中,条件保持为 −
i < (sizeof(myArray) / sizeof(myArray[0]))