/* * triangle.c -- triangle classification program * * To build: gcc -o triangle triangle.c * */ #include #include int main(int argc, const char *argv[]) { int a, b, c, d; if ( argc < 4 ) { printf("Usage: %s length1 length2 length3\n", argv[0]); printf(" List lengths in descending order.\n"); return 1; } a = atoi(argv[1]); b = atoi(argv[2]); c = atoi(argv[3]); if ( a <= 0 || b <= 0 || c <= 0 ) { printf("Illegal side lengths.\n"); exit(1); } printf("Sides with length %d, %d, and %d", a, b, c); if ( a >= b && b >= c && a + b > c && a + c > b && b + c > a ) { if ( a == b || b == c ) { if ( a == b && b == c ) { printf(" form an equilateral triangle.\n"); } else { printf(" form an isosceles triangle.\n"); } } else { a = a * a; b = b * b; c = c * c; d = b + c; if ( a != d ) { if ( a < d ) printf(" form an obtuse triangle.\n"); else printf(" form an acute triangle.\n"); } else { printf(" form a right triangle.\n"); } } } else { if ( a < b || b < c ) printf(" are not descending.\n"); else printf(" cannot form a triangle.\n"); } return 0; }