我不知道如何将下面的几个函数整合在一起求数据的中位数median和均值函数mean?
希望高手予以帮助,先谢谢大家了。以前都用R编程,只要输入几个命令即可,C语言果然博大精深啊!



//首先生成50个poisson随机数

#include "stdlib.h" 
#include "stdio.h" 
#include "math.h" 

//for link
double uniform(double a,double b,long int *seed); /*均匀分布*/
int poisson(double lambda,long int *seed); /*泊松分布*/


/******************************************************************* 
* 求[a,b]上的均匀分布 
* 输入: a--双精度实型变量,给出区间的下限 
*         b--双精度实型变量,给出区间的上限 
*      seed--长整型指针变量,*seed为随机数的种子   
********************************************************************/ 
double uniform(double a,double b,long int *seed) 

double t; 
*seed=2045*(*seed)+1; 
*seed=*seed-(*seed/1048576)*1048576; 
t=(*seed)/1048576.0; 
t=a+(b-a)*t; 

return(t); 



/************************************************************************/ 
/* 泊松分布                                                             */ 
/************************************************************************/ 
int poisson(double lambda, long int *seed) 

int i,x; 
double a,b,u; 

a=exp(-lambda); 
i=0; 
b=1.0; 
do { 
u=uniform(0.0,1.0,seed); 
b*=u; 
i++; 
} while(b>=a); 
x=i-1; 
return(x); 
}


/************************************************************************/ 
/* 泊松分布的例子,生成50个poisson(4)                                    */ 
/************************************************************************/ 
void main() 

double a,b,x; 
int i,j; 
long int s; 

a=4;     /*lambda*/
b=0.7; 
s=13579;     /*seed*/

for(i=0;i<10;i++) 
 { 
  for(j=0;j<5;j++) 
   { 
     x=poisson(a,&s); 
     printf("%-13.7f",x); 
   } 
   printf("\n"); 
 } 
   
   system("Pause");
   return 0;

//编写中位数的函数
/* Sample Median */

double median(x,n)
float *x;
int n;
{
    rsort(x,n);
    return 0.5*(x[(int)(0.5*n-0.01)]+x[(int)(0.5*n+0.01)]);
}
//rsort 函数
rsort(x,n)
float *x;
int n;
{
    int i, j, h;
    float v;

    if( n<=1 ) return;
    h = 1;
    while( h<n )
        h = 3*h+1;
    do {
        h = h/3;
        for( i=h ; i<n ; i++ ) {
            v = x[i];
            j = i;
            while( x[j-h] > v ) {
                x[j] = x[j-h];
                j = j-h;
                if( j<h ) goto out;
            }
        out:    x[j] = v;
        }
    }
    while( h!=1 );
}
//mean函数

double mean(x,n)
float *x;
int n;
{
    double sum;
    int i;

    sum = 0.;
    for( i=0 ; i<n ; i++ )
        sum += x[i];
    return sum/n;
}