...

/

Example 44: Area of a Triangle

Example 44: Area of a Triangle

Learn how to calculate the area of a triangle using pointers.

We'll cover the following...

Problem

Write a function to compute the distance between two points, and use it to develop another function that will compute the area of the triangle whose vertices are A (x1, y1), B (x2, y2), and C (x3, y3), and ascertain if the triangle is valid.

Example

Input (Point 1, Point 2, Point 3) Output
0 0
6 0
0 8
Length of first side = 6.000000
Length of second side = 10.000000
Length of third side = 8.000000
Area: 24.000000
0 4
0 8
0 15
Length of first side = 4.000000
Length of second side = 7.000000
Length of third side = 11.000000
Not a triangle

Try it yourself

Try to solve this question on your own in the code widget below. If you get stuck, you can always refer to the solution provided.

Note: To run your solution or our given solution, follow the following steps:

  • Click on the run button.
  • Wait for the 4 steps to complete, and then switch to the terminal tab.
  • In the terminal tab, write the following command:
    gcc main.c -o main -lm
    Then, write this command:
    ./main

Note: The C language requires -lm flag while executing a program that uses the math library.

/* Calculate area of triangle */
#include <stdio.h>
#include <math.h>

int  isTriangleValid ( float s1, float s2, float s3 ){
	//determine if the given sides form a valid triangle
}

float areaOfTriangle (float s1, float s2, float s3) {
	//calculate the area of a triangle
}

float distance (int x1, int y1, int x2, int y2) {
	//calculate the length of the sides
}

int main() {
	int x1, y1, x2, y2, x3, y3;
	float s1, s2, s3, area;
	int isValid = 0;	

	printf ("Enter the coordinates of 3 vertices of the triangle: \n" ) ;
	printf ("First Vertex (x, y): \n" );
	scanf ("%d %d", &x1, &y1);
	printf ("Second Vertex (x, y): \n");
	scanf ("%d %d", &x2, &y2);
	printf ("Third Vertex (x, y): \n");
	scanf ("%d %d", &x3, &y3);

	s1 = distance (x1, y1, x2, y2);
	s2 = distance (x2, y2, x3, y3);
	s3 = distance (x1, y1, x3, y3);

	printf ("Length of first side = %f\n", s1);
	printf ("Length of second side = %f\n", s2);
	printf ("Length of third side = %f\n", s3);
	
	isValid = isTriangleValid (s1, s2, s3);
	if (isValid) {
		area = areaOfTriangle (s1, s2, s3);
		printf ("Area: %f\n", area);
	}
	else
		printf ("Not a triangle. \n");
	return 0;
}

Solution

Given below is our recommended way to approach this problem. ...