beatleさん,nonさん毎度回答していただいてありがとうございます.
結果から言うとうまく動くようになりました.
No.45のコードの48行目のforに{}をつけ忘れていたため出力がおかしかったようです.
non さんが書きました:min=2147483648;
にした理由を説明してください。
とりあえず初めはminに大きい値を入れておこうと考え,最大距離が(明らかにおかしいのですが)2147483647と出たのでそれより大きい値に設定しようと思いました.
しかし劇的に大きい値を設定するにはINT_MAXを使えばいいと気づいたためそれを使ってみました.距離の最大値=2147483647と出たのは最大値を求めるべつのプログラムでもファイルの中身を読めていなかったようです.
beatle さんが書きました:
コード:
printf("X[%d] = %d, Y[%d] = %d\n", a, X[a], a, Y[a]);
などと書いておけば、X,Yに正しい値が入っているか、ご自分で調べられますよね。
確かにそうですね.頭が回りませんでした.すみません.
上にも書いたように動いたは動いたのですがdistance内で
コード:
printf("X[%d] = %lf, Y[%d] = %lf\n", a, X[a], a, Y[a]);
を調べてみたのですが出力が
X[1304] = 1670.090000, Y[1304] = 2048.060000
X[1304] = 1670.090000, Y[1304] = 2048.060000
X[1304] = 1670.090000, Y[1304] = 2048.060000
X[1304] = 1670.090000, Y[1304] = 2048.060000
X[1304] = 1670.090000, Y[1304] = 2048.060000
X[1304] = 1670.090000, Y[1304] = 2048.060000
X[1304] = 1670.090000, Y[1304] = 2048.060000
X[1304] = 1670.090000, Y[1304] = 2048.060000
X[1304] = 1670.090000, Y[1304] = 2048.060000
X[1304] = 1670.090000, Y[1304] = 2048.060000
X[1323] = 1670.090000, Y[1323] = 2036.250000
X[1323] = 1670.090000, Y[1323] = 2036.250000
X[1323] = 1670.090000, Y[1323] = 2036.250000
X[1323] = 1670.090000, Y[1323] = 2036.250000
と,ランダム?に値が変わっていき,無限ループになってしまいました.
しかし全体のプログラム自体はうまくいっているように思えるのですがこれはなぜなのでしょうか.
これは考えてみてもわからなかったのでヒントだけ少しいただけないでしょうか.