Wednesday, December 2, 2015

Uri problem 1045 solve

Problem :

Triangle Types

Adapted by Neilor Tonin, URI  Brazil
Timelimit: 1
Read 3 double numbers (A, B and C) representing the sides of a triangle and arrange them in decreasing order, so that the side A is the biggest of the three sides. Next, determine the type of triangle that they can make, based on the following cases always writing an appropriate message:
  • if A ≥ B + C, write the message: NAO FORMA TRIANGULO
  • if A2 = B2 + C2, write the message: TRIANGULO RETANGULO
  • if A2 > B2 + C2, write the message: TRIANGULO OBTUSANGULO
  • if A2 < B2 + C2, write the message: TRIANGULO ACUTANGULO
  • if the three sides are the same size, write the message: TRIANGULO EQUILATERO
  • if only two sides are the same and the third one is different, write the message: TRIANGULO ISOSCELES

Input

The input contains three double numbers, A (0 < A) , B (0 < B) and C (0 < C).

Output

Print all the classifications of the triangle presented in the input.
Sample InputsSample Outputs
7.0 5.0 7.0TRIANGULO ACUTANGULO
TRIANGULO ISOSCELES
6.0 6.0 10.0TRIANGULO OBTUSANGULO
TRIANGULO ISOSCELES
6.0 6.0 6.0TRIANGULO ACUTANGULO
TRIANGULO EQUILATERO
5.0 7.0 2.0NAO FORMA TRIANGULO
6.0 8.0 10.0TRIANGULO RETANGULO

Solution:

#include<stdio.h>
 
int main()
{
    double a[4], temp;
    int i , j;
    for(i=0; i<3; i++)
        scanf("%lf",&a[i]);
    for(i=0; i<3; i++) {
        for(j=i; j<3; j++) {
            if(a[0]<a[j]) {
                temp=a[i];
                a[i]=a[j];
                a[j]=temp;
            }
        }
    }
    if(a[0]>=a[1]+a[2]){
        printf("NAO FORMA TRIANGULO\n");
        exit(0);
    }
    if(a[0]*a[0]==((a[1]*a[1])+(a[2]*a[2])))
        printf("TRIANGULO RETANGULO\n");
    if(a[0]*a[0]>((a[1]*a[1])+(a[2]*a[2])))
        printf("TRIANGULO OBTUSANGULO\n");
    if(a[0]*a[0]<((a[1]*a[1])+(a[2]*a[2])))
        printf("TRIANGULO ACUTANGULO\n");
    if(a[0]==a[1] && a[1]==a[2])
        printf("TRIANGULO EQUILATERO\n");
    if((a[0]==a[1] && a[0]!=a[2]) || (a[1]==a[2] && a[1]!=a[0]) || (a[0]==a[2] && a[0]!=a[1]))
        printf("TRIANGULO ISOSCELES\n");
 
    return 0;
}

No comments:

Post a Comment