#include

#include

#include

#include

main()

{

clrscr();

float a,b,c,S,D,A,B,C,Area,R;

printf("Enter the lengths of the three sides of the triangle :

");

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

");

if(a==b && b==c && c==a)

printf("

The triangle is EQUILATERAL

");

if(a!=b && b!=c && c!=a)

printf("

The triangle is SCALENE

");

Area = sqrt(D);

R = (a*b*c)/(4.0*Area);

printf("PERIMETER = %.2f units

",(2.0*S));

printf("AREA = %.2f sq.units

",Area);

printf("CIRCUM RADIUS = %.2f units

",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

");

if(A<90.0 && B<90.0 && C<90.0)

printf("

The triangle is ACUTE ANGLED

");

if(A>90.0 || B>90.0 || C>90.0)

printf("

The triangle is OBTUSE ANGLED

");

printf("

The angles are as follows :

");

printf("A = %.2f degrees

",A);

printf("B = %.2f degrees

",B);

printf("C = %.2f degrees

",C);

printf("

Where A,B,C stand for angles opposite to sides

%.2f,%.2f,%.2f",a,b,c);

printf(" respectively

");

getch();

return 0;

}

## No comments:

## Post a Comment