>>67
まず
if(rnd2>psi[x]/psi[N/2]){
n=calc_n(psi);
return ・・・・・; ← ここの戻り値は何になる?
}
else{
return n; ← ここは x ってことだな
}

あと psi(整数もしくは実数として)の配列は初期値として何が入ってる?
0 だと if(rnd2>psi[x]/psi[N/2]) ここで 0 による除算でエラーになる