C语言fun函数计算数组N个数的平均值,并将小于平均值且最接*均值的数作为函数值返回,求教问题

发布于2022-03-01 21:54:42

#include #include #define N 10double fun(double x[],double *av){ int i,j; double d,s; s=0; for(i=0; i/**********found**********/ *av=s/N; d=32767;//求教这个d是什么含义呢?为何取值32767? for(i=0; i if(x[i]<*av && *av - x[i]<=d){// *av - x[i]<=d这个又是什么意思呢?/**********found**********/ d=*av-x[i]; j=i; }/**********found**********/ return x[j];}main(){ int i; double x[N],av,m; for(i=0; i printf("\n"); m=fun(x,&av); printf("\nThe average is: %f\n",av); printf("m=%5.1f ",m); printf("\n");}=====程序要求fun函数计算数组N个数的平均值,并将小于平均值且最接*均值的数作为函数值返回。d=32767;//求教这个d是什么含义呢?为何取值32767?*av - x[i]<=d这个又是什么意思呢;>;>;>

2个回答
admin
网友回答2022-03-01
32767是16位int类型的最大值,在这里意指无穷大。 这个是用来在后面找到小于平均值,又最接*均值做准备的。 其实这里的d,的含义是指待找的值和平局值的差值。 这里就要找个d最小的值,就是目标值。 *av - x[i]<=d 这句话的意思就是 如果平局值减去第i个值,小于d,那么就进行替换操作,当前i就是暂时的最优解。
admin
网友回答2022-03-01
double fun(int course[],int n) { double ave=0.0; for(int i=0;i
13
评论0
加载更多
;i++)>

回到
顶部