⽤C语⾔写⼀个差分函数diff()/*
2020年3⽉30⽇22:46:37
diff:后⼀个元素减去前⼀个元素,但传⼊的形参⼀定要事先
确定好长度,不然会出错。
参数:
dat---要做差分的数组地址
datalen-----传⼊数组长度
ret_buf-----做差分之后存放的数组地址
ret_len---差分之后的数组长度
*/
void diff(int*dat,int datalen,int*ret_buf,int*ret_len)
{
int i,j=0;
for(i =1; i<datalen; i++)
{
ret_buf[j++]= dat[i]-dat[i-1];
}
*ret_len = j;
}
int main(void)
{
int a[30]={0};//要事先定义好数组长度
int i,len;
int*buf;//存放差分后的结果
for(i =0;i<30; i++)//差分数组赋值
{
a[i]= i;
printf("a[%d]=%d\n",i,a[i]);
}
buf =(int*)malloc(sizeof(int)*(i-1));//申请动态空间
diff(a,i,buf,&len);
for(i =0;i< len; i++)
{
printf("buf[%d]=%d\n",i,buf[i]);
}
free(buf);
return0;
}
diff函数运⾏结果如下
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论