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. ...