演習問題(1) - 二点間の距離

以下のプログラムを作成してみよう. 作成結果などを提出する必要はない. 疑問点などはTA・教員に遠慮なく質問してもらいたい.

前回も出てきた, 平面上の点を表す構造体 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」とかになるはずである.

解答例のプログラム (説明の時になったら見えるようになります)


[page 3] prev index next