在嵌入式行业很多数据需要知道是增大、减小、稳定还是无序,下面程序就是数据现象:
/***********2:稳定、1:递增、0:无序、-1:递减*******/
#include<stdio.h>
#define LIGHT_DATA_COUNT_MAX 7
typedef enum
{
LIGHT_DATA_DECREASE=-1,
LIGHT_DATA_DISORDER=0,
LIGHT_DATA_INCREASE,
LIGHT_DATA_STABLE,
LIGHT_DATA_MAX
} LIGHT_DATA_ENUM;
static int ordered(int *pdat, int len)
{
int t = 0,order = 0;
if(len == 1)
return 2;
t = (pdat[0]<pdat[1])-(pdat[0]>pdat[1])+2*(pdat[0]==pdat[1]);
order = ordered(pdat + 1,len - 1);
if(t*order == 0 || t*order == -1)
return 0;
if(t > order)
t = order;
return t;
}
int main (void)
{
int glare_data[LIGHT_DATA_COUNT_MAX] = {30,26,19,19,17,15,13};
int t = ordered(glare_data,LIGHT_DATA_COUNT_MAX);
printf("t = %d\n",t);
return 0;
}