すみません。
for(i=0;i<50000;i++){
ntest=calc_n(psi);
}
みたいなループの中で関数calc_n(psi)を呼んで中で
int calc_n(double *psi){
int x;
int n;
double rnd1,rnd2;
rnd1=(double)rand()/RAND_MAX; //0から1までの乱数
x=(int)(rnd1*N);        //0からN−1までの乱数
rnd2=(double)rand()/RAND_MAX;  //0から1までの別の乱数
if(rnd2>psi[x]/psi[N/2]){  //rnd2がpsi[x]/psi[N/2]より多い場合
n=calc_n(psi);     // 残念でした、またどうぞ
}
else{         // そうじゃなけりゃ
return n;       // nを返してね
}
}
みたく、calc_nの中でcalc_n呼んでみたらエラーがでました。