OverIQ.com

C Program to determine the type and Area of a Triangle

Last updated on July 27, 2020


The following is a C Program to determine the type and Area of a Triangle:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/*****************************************************
 Program to determine the type and area of a triangle
 *****************************************************/

#include<stdio.h> // include stdio.h library
#include<math.h> // include math.h library

int main(void)
{   
    float a, b, c, s, area;

    printf("Enter sides of a triangle: \n");

    printf("a: ");
    scanf("%f", &a);

    printf("b: ");
    scanf("%f", &b);

    printf("c: ");
    scanf("%f", &c);

    // sum of any two sides must be greater than the third side    
    if( (a + b > c) && (b + c > a) && (c + a > b) )
    {
        //  three sides are equal
        if( (a == b) && (b == c) )
        {
            printf("Triangle is equilateral.\n");
        }

        //  two sides are equal
        else if( (a == b) || (b == c) || (a == c) )
        {
            printf("Triangle is isosceles.\n");
        }

        // no sides are equal
        else
        {
            printf("Triangle is scalene.\n");
        }

        //  area of triangle using heron's formula https://en.wikipedia.org/wiki/Heron's_formula

        s = (a + b + c) / 2;  //semi perimeter

        area = sqrt(  s * (s - a) * (s - b) * (s - c) ); // area

        printf("Area of triangle %.2f.", area);

    }

    else
    {
        printf("Sides don't make a triangle.");
    }

    return 0; // return 0 to operating system
}

Expected Output:

1st run:

1
2
3
4
5
6
Enter sides of a triangle: 
a: 3
b: 4
c: 5
Triangle is scalene.
Area of triangle 6.00.

2nd run:

1
2
3
4
5
Enter sides of a triangle: 
a: 4
b: 5
c: 1
Sides don't make a triangle.

How it works #

The above program uses two theorems:

  • Triangle Inequality Theorem
  • Heron's Formula

Triangle Inequality Theorem #

The Triangle Inequality Theorem states that the sum of two sides of a triangle must be greater than the third side.

Let a, b c be the three sides of the triangle then according to Triangle Inequality theorem:

1
2
3
a + b > c
b + c > a
c + a > b

We can also use Triangle Inequality theorem to determine whether the given three line segments can be used to construct a triangle or not.

In order for three line segments to form the sides of a triangle, all the three conditions must be satisfied.

If any one of the condition fails then the given line segments can't be used to construct a triangle. For example:

Example 1: Can we construct a triangle using the following lengths: 7, 3, 2?

1
2
3
7 + 3 > 2 => true 
3 + 2 > 7 => false
7 + 2 > 3 => true

The second condition is false. Hence, lengths 7,3 and 2 can't construct a triangle.

Example 2: Can we construct a triangle using the following lengths: 3, 4, 5?

1
2
3
3 + 4 > 5 => true  
4 + 5 > 3 => true
5 + 3 > 4 => true

All the three conditions are true. Hence, lengths 3, 4, 5 can be used to construct a triangle.

Heron's Formula #

Heron's Formula allows us to find the area of the triangle using the length of the three sides.

\begin{gather*}
Area=\sqrt{s(s-a)(s-b)(s-c)}
\end{gather*}

where s is called the semi perimeter of the triangle and is calculated as follows:

\begin{gather*}
s=\frac{a+b+c}{2}
\end{gather*}