N個の点(位置は座標にあらわしてます)を一回ずつ巡回したときの最短距離を全探索するプログラムなんですが、コンパイルは出来るのに
出力したときに結果がすべて0になってしまいます。何も代入されないってのはおかしいので質問させていただきます。

以下はその探索に使用するプログラムを抜き出したものです。再帰を使ってます。
m番目にまだめぐってない点を見つけて、次に(m+1)番目に巡ってない無い点を・・・と探して行ってます。
具体的にはN*Nのます目に0(FALSE)を入れたあとで縦に点の番号、横に巡回の順番をとって、
点 n が m 番目に巡回したときに n行m列のます目に1(TURE)を入れていき、最後にその順番に従って距離計算、比較を行っています。

変数の説明ですが、s1、s2、d1、d2は大域で宣言し、 tは縦、yは横、s1は横(点側)から見たとき巡回が重複か否かを見ていて、s2はすでに回った点の番号を入れ、
d1は各点間の距離でこれはすでに計算されています。よろしくお願いします。

void search(int t){
int y,i,j;
for(y = 0; y < N; y++){
if(s1[y] == FALSE){
s1[y] = TURE; s2[t] = y;

if(t < N-1) search(t+1);
else{
for(i = 1; i < N; i++)
d2 += d1[s2[i-1]][s2[i]];
d2 += d1[s2[0]][s2[N-1]];
if(d2 < mini_d){
mini_d = d2;
for(j = 0; j < N; j++)
mini_s2[j] = s2[j]; d2 = 0;
}
}
s1[y] = FALSE;
}
}
}