计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y数组中输出 #include <stdlib.h> #include <stdio.h> #define N 10 double fun(double x[],double *y) { int i,j; double av; av=0.0; //av为double型 for(i=0; i<N; i++)
av=av+x[i]/N; //将 sum=0;sum=sum+x[i];av=sum/N;合成一条 for(i=j=0; i<N; i++) if(x[i]>av) y[j++]= x[i]; //若为y[j]的话,会导致y[0]这个元素会不断被赋值 y[j]=-1; //题目将x[i]全设定为整数,y[j]=-1相当于终点,为下面输出做铺垫 return av; } void main() { int i; double x[N],y[N]; for(i=0; i<N; i++){ x[i]=rand()%50; printf("%4.0f ",x[i]);} printf("\n"); printf("\nThe average is: %f\n",fun(x,y)); for(i=0; y[i]>=0; i++) printf("%5.1f ",y[i]); printf("\n"); }