位置:
首页

>

>

C语言从数组中查找最大值和最小值
时间:
有一个非常基本的算法,通常在嵌入式开发中使用,即找到最佳价值。最常见的是以下两个宏:#define max(a,b)((a)& gt;(b)?(a):(b))#define min(a,b)((a)& ; lt;(b)?(a):(b))max和min宏比较两个较大和较小的值,然后使其很容易返回。
但是如果要比较多个数据的值,我们需要比较数组中的元素,让我们看一下程序的实现:find_buffer_max_min.c #include& lt; stdio.h& gt; #include& lt; unistd.h& gt; #include& lt; stdlib.h& gt; #define NR(x)(sizeof(x)/ sizeof(x [0]))#define u32 unsigned int  #define u8& nbsp; unsigned char //查找数组的最小值静态u32 find_buffer_min(u32 buffer_value_min,u32 size,u32 * buffer){u8 count = 0;  //首先设置一个比较范围值u32 min = buffer_value_min; //遍历数组大小字节for(count = 0; count& lt; size; count ++){//比较当前数组的索引值是否小于当前设置的最小值。 //如果是这样,则将值分配给min,然后依次遍历for循环,直到找到最小值为止。
if(buffer [count]& lt; min)min = buffer [count];} //返回最小值return min; } //查找数组的最大值静态u32 find_buffer_max(u32 buffer_value_max,u32大小,u32 * buffer){u8 count = 0;  u32 max = buffer_value_max; //遍历数组大小字节for(count = 0; count& lt; size; count ++){//比较当前数组的索引值是否大于当前设置的最大值。 //如果为If,则将值分配给max,然后依次遍历for循环,直到找到最大值为止。
if(buffer [count]& gt; max)max = buffer [count];} //返回最大值return max;& nbsp;}& nbsp; & nbsp; int main(void){int i = 0; int buffer [10] = {11111,45465,5454,11211,45778,21144,854,12347,12347,8898}; int min = find_buffer_min(32767,NR(buffer),buffer); int max = find_buffer_max(32767,NR(buffer),buffer); printf(“ min:%d& nbsp; max:%d ",min,max);返回0;  }& nbsp;操作结果:。
产品资料
行业信息