前回も出てきた, 平面上の点を表す構造体 struct point を使う. この構造体の定義はこんな感じ:
struct point {
double x;
double y;
};
double は精度の高い浮動小数点型である(教科書P.234).
(べつにこの場合には精度が高い必要はないが…)
ここで, 二つの点の間の距離を求める関数を作ってみる. だいたいの形はこんなふうになる:
double dist(struct point p1, struct point p2){
double result;
......
return result;
}
「......」のところで, p1 と p2 の距離を計算して, 変数 result に代入することになる. おそらく平方根を求める必要が出てくると思うが, それについては演習(3)のときに説明があったのでそちらを参照のこと.
テスト用のmainプログラムとして, 以下を使えばよいだろう:
#include <stdio.h>
#include <math.h>
struct point {
double x;
double y;
};
double dist(struct point p1, struct point p2){
double result;
......
return result;
}
int main(void){
struct point point_a = {1.0, 2.0};
struct point point_b = {4.0, 6.0};
double d;
d = dist(point_a, point_b);
printf("%lf\n", d);
return(0);
}
出力は「5.000000」とかになるはずである.
解答例のプログラム (説明の時になったら見えるようになります)