luc019.c (1973B)
1 /* If the length of three sides of a triangle are entered through the 2 keyboard, write a program to check whether the triangle is an isosceles, 3 an equilateral, a scalene or a right-angled triangle. */ 4 /* Let Us C, Chap- 4, Page - 71, Qn No.: D(a) */ 5 6 #include <stdio.h> 7 #include <math.h> 8 9 #define EPSILON 0.000001 10 /* EPSILON is used to compare double values for approximate equality, 11 mitigating floating-point precision errors. */ 12 13 int main() 14 { 15 double side1, side2, side3; 16 printf("Please enter the length of three side of the triangle : "); 17 scanf("%lf %lf %lf", &side1, &side2, &side3); 18 if (side1 < 1 || side2 < 1 || side3 < 1) 19 { 20 printf("\nLength of a side of triangle should be a positive integer."); 21 return 1; 22 } 23 if (side1 + side2 < side3 || side1 + side3 < side2 || side2 + side3 < side1) 24 { 25 printf("\nEntered triangle is not VALID."); 26 return 1; 27 } 28 // isosceles check 29 if (side1 == side2 || side2 == side3 || side3 == side1) 30 printf("\nEntered triangle is a ISOSCELES triangle."); 31 else 32 printf("\nEntered triangle is NOT a ISOSCELES triangle."); 33 // equilateral check 34 if (side1 == side2 && side2 == side3) 35 printf("\nEntered triangle is a EQUILATERAL triangle."); 36 else 37 printf("\nEntered triangle is NOT a EQUILATERAL triangle."); 38 // scalene check 39 if (side1 != side2 && side2 != side3) 40 printf("\nEntered triangle is a SCALENE triangle."); 41 else 42 printf("\nEntered triangle is NOT a SCALENE triangle."); 43 // right-angle check 44 if (fabs(((side1 * side1) + (side2 * side2)) - (side3 * side3)) < EPSILON || 45 fabs(((side2 * side2) + (side3 * side3)) - (side1 * side1)) < EPSILON || 46 fabs(((side3 * side3) + (side1 * side1)) - (side2 * side2)) < EPSILON) 47 printf("\nEntered triangle is a RIGHT-ANGLED triangle."); 48 else 49 printf("\nEntered triangle is NOT a RIGHT-ANGLED triangle."); 50 return 0; 51 }