Displaying Source Code(s)
|
|
Progam that gives all details of a Triangle given the lengths of
its sides
--------------------------------------------------------------------------------
Description : Gives various details like the angles, whether the
triangle can be formed or not, circum radius, etc
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<math.h>
main()
{
clrscr();
float a,b,c,S,D,A,B,C,Area,R;
printf("Enter the lengths of the three sides of the triangle :
<BR>);
scanf("%f%f%f",&a,&b,&c);
S = (a+b+c)/2.0; // S is the semiperimeter of the triangle
D = S*(S-a)*(S-b)*(S-c);//D is the square of the area of the
triangle
if(D<=0)
{
printf("
The triangle cannot be formed");
getch();
exit(0);
}
if((a==b || b==c || c==a) && !(a==b && b==c && c==a))
// this complex logic is to eliminate interpretting a triangle
with all
three
// sides equal as both isosceles and equilateral.
printf("
The triangle is ISOSCELES
<BR>);
if(a==b && b==c && c==a)
printf("
The triangle is EQUILATERAL
<BR>);
if(a!=b && b!=c && c!=a)
printf("
The triangle is SCALENE
<BR>);
Area = sqrt(D);
R = (a*b*c)/(4.0*Area);
printf("PERIMETER = %.2f units<BR>,(2.0*S));
printf("AREA = %.2f sq.units<BR>,Area);
printf("CIRCUM RADIUS = %.2f units<BR>,R);
// using sine rule,we get...
A = (180.0/3.1415926)*asin(a/(2.0*R));// value of pi should be
upto 7
B = (180.0/3.1415926)*asin(b/(2.0*R));// decimal places of
accuracy and
also
C = (180.0/3.1415926)*asin(c/(2.0*R));// note that the 7th
decimal place
is
// 6 and not 7 as it had to be if were
if(A==90.0 || B==90.0 || C==90.0) // approximated to 7 decimal
places
printf("
The triangle is RIGHT ANGLED<BR>);
if(A<90.0 && B<90.0 && C<90.0)
printf("
The triangle is ACUTE ANGLED<BR>);
if(A>90.0 || B>90.0 || C>90.0)
printf("
The triangle is OBTUSE ANGLED<BR>);
printf("
The angles are as follows :
<BR>);
printf("A = %.2f degrees<BR>,A);
printf("B = %.2f degrees<BR>,B);
printf("C = %.2f degrees<BR>,C);
printf("
Where A,B,C stand for angles opposite to sides
%.2f,%.2f,%.2f",a,b,c);
printf(" respectively<BR>);
getch();
return 0;
}
|
|
|