高级会员
- 积分
- 979
- 威望
- 522
- 贡献
- 271
- 兑换币
- 333
- 注册时间
- 2015-11-1
- 在线时间
- 93 小时
- 毕业学校
- UPC
|
楼主 |
发表于 2016-2-1 20:21:22
|
显示全部楼层
float zxec_slope_calculate(int8 begin,int8 end,int8 *array)
{
int xsum=0,ysum=0,xysum=0,x2sum=0;
uint8 i=0;
float result=0;
static float result_last;//开辟静态区间,保存上一次的结果
array=array+begin;//定位开始地址
for(i=begin;i<=end;i++)
{
xsum+=i;
ysum+=*array;
xysum+=i*(*array);
x2sum+=i*i;
array=array+1;
}
if((end-begin)*x2sum-xsum*xsum) //除数不为零
{
result=(float)((end-begin+1)*xysum-xsum*ysum)/((end-begin+1)*x2sum-xsum*xsum);
result_last=result;
}
else//除数等于零
result=result_last;//保留上一次不为零时的计算结果
return result;
} |
|