【C言語】三角形の面積を計算するプログラムの書き方

この記事では、C言語を使って三角形の面積を計算する方法を解説します。

目次から探す

三角形の面積の計算方法

三角形の面積を計算する方法にはいくつかの方法があります。

ここでは、ヘロンの公式、底辺と高さを使った方法、そしてベクトルを使った方法について解説します。

底辺と高さを使った計算方法

三角形の底辺と高さを使って面積を計算する方法もあります。

底辺と高さの長さを知っている場合、面積は以下のように計算できます。

面積 = (底辺 × 高さ) / 2

C言語で底辺と高さを使った面積の計算を行うためには、以下の手順を実装します。

  1. 三角形の底辺の長さと高さを入力する。
  2. 面積を底辺と高さを使って計算する。
  3. 計算結果を出力する。

ヘロンの公式を使った計算方法

ヘロンの公式は、三角形の3辺の長さから面積を求める公式です。

以下のような式で表されます。

面積 = √(s(s-a)(s-b)(s-c))

ここで、sは三角形の半周の長さであり、a、b、cはそれぞれ三角形の3辺の長さです。

ヘロンの公式を使った面積の計算をC言語で行うためには、以下の手順を実装します。

  1. 三角形の3辺の長さを入力する。
  2. 半周の長さsを計算する。
  3. 面積をヘロンの公式に基づいて計算する。
  4. 計算結果を出力する。

ベクトルを使った計算方法

ベクトルを使って三角形の面積を計算する方法もあります。

ベクトルを使った面積の計算では、三角形の2辺のベクトルを求め、それらの外積の大きさを求めることで面積を計算します。

C言語でベクトルを使った面積の計算を行うためには、以下の手順を実装します。

  1. 三角形の3つの頂点の座標を入力する。
  2. 2辺のベクトルを計算する。
  3. 外積の大きさを計算して面積を求める。
  4. 計算結果を出力する。

C言語でのプログラムの書き方

それでは、C言語で三角形の面積を計算するプログラムの書き方について解説します。

ヘロンの公式を使ったプログラムの書き方

以下に、ヘロンの公式を使って三角形の面積を計算するC言語のプログラムの例を示します。

#include <stdio.h>
#include <math.h>
int main() {
    double a, b, c;
    double s, area;
    printf("三角形の3辺の長さを入力してください:\n");
    scanf("%lf %lf %lf", &a, &b, &c);
    s = (a + b + c) / 2;
    area = sqrt(s * (s - a) * (s - b) * (s - c));
    printf("三角形の面積は %lf です。\n", area);
    return 0;
}

このプログラムでは、abcという変数にそれぞれ三角形の3辺の長さを入力し、sに半周の長さを計算しています。

そして、ヘロンの公式を使って面積を計算し、結果を出力しています。

底辺と高さを使ったプログラムの書き方

次に、底辺と高さを使って三角形の面積を計算するC言語のプログラムの例を示します。

#include <stdio.h>
int main() {
    double base, height;
    double area;
    printf("三角形の底辺の長さを入力してください:\n");
    scanf("%lf", &base);
    printf("三角形の高さを入力してください:\n");
    scanf("%lf", &height);
    area = (base * height) / 2;
    printf("三角形の面積は %lf です。\n", area);
    return 0;
}

このプログラムでは、baseheightという変数にそれぞれ底辺と高さの長さを入力し、面積を計算しています。

計算結果を出力しています。

ベクトルを使ったプログラムの書き方

最後に、ベクトルを使って三角形の面積を計算するC言語のプログラムの例を示します。

#include <stdio.h>
#include <math.h>
typedef struct {
    double x;
    double y;
} Point;
double calculateArea(Point p1, Point p2, Point p3) {
    double area;
    double vector1_x, vector1_y;
    double vector2_x, vector2_y;
    vector1_x = p2.x - p1.x;
    vector1_y = p2.y - p1.y;
    vector2_x = p3.x - p1.x;
    vector2_y = p3.y - p1.y;
    area = fabs((vector1_x * vector2_y) - (vector1_y * vector2_x)) / 2;
    return area;
}
int main() {
    Point p1, p2, p3;
    double area;
    printf("三角形の1つ目の頂点の座標を入力してください(x y):\n");
    scanf("%lf %lf", &p1.x, &p1.y);
    printf("三角形の2つ目の頂点の座標を入力してください(x y):\n");
    scanf("%lf %lf", &p2.x, &p2.y);
    printf("三角形の3つ目の頂点の座標を入力してください(x y):\n");
    scanf("%lf %lf", &p3.x, &p3.y);
    area = calculateArea(p1, p2, p3);
    printf("三角形の面積は %lf です。\n", area);
    return 0;
}

このプログラムでは、Pointという構造体を定義し、座標を表すxyのメンバ変数を持ちます。

calculateArea関数では、3つの頂点の座標を受け取り、ベクトルを計算して面積を求める処理を行っています。

メイン関数では、頂点の座標を入力し、calculateArea関数を呼び出して面積を計算し、結果を出力しています。

それぞれの方法について、適切な計算式や手順を実装することで、正確な面積を求めることができます。

目次から探す