Dados três valores A , B e C , construa um programa em C para verificar se estes valores podem ser valores dos lados de um triângulo, e se for, classificá-los (imprimi-los) segundo os ângulos. (Triângulo Retângulo =90^{\circ}, Triângulo Obtusângulo >90^{\circ}, Triângulo Acutângulo <90^{\circ} )

Passo 1

O enunciado pede um programa em C que receba três valores A, B e C, verifique se eles satisfazem a desigualdade triangular (ou seja, se podem ser lados de um triângulo) e, caso positivo, classifique o triângulo em retângulo, obtusângulo ou acutângulo com base nos ângulos internos. Vamos usar a ideia de ordenar os lados em ordem crescente para facilitar: supondo que a\le b\le c, o triângulo existe se e só se
a + b > c.
Para classificar pelo tipo de ângulo, aplicamos o teorema de Pitágoras generalizado comparando c^2 com a^2 + b^2:
  • se c^2 = a^2 + b^2, é retângulo;
  • se c^2 > a^2 + b^2, é obtusângulo;
  • se c^2 < a^2 + b^2, é acutângulo.

Passo 2

Ordenar os três valores em ordem crescente. Uma forma simples sem usar bibliotecas é usar comparações e trocas:
if (A > B) { double t = A; A = B; B = t; }
if (B > C) { double t = B; B = C; C = t; }
if (A > B) { double t = A; A = B; B = t; }
/* Ao final: A ≤ B ≤ C */

Passo 3

Verificar a existência do triângulo usando a desigualdade triangular:
\text{se } A + B \le C,\text{ então não forma triângulo.}ããâ
Caso contrário, seguimos para a classificação de ângulos.

Passo 4

Comparar C^2 com A^2 + B^2:
  • se C^2 == A^2 + B^2, imprimir Triângulo Retângulo;
  • senão, se C^2 > A^2 + B^2, imprimir Triângulo Obtusângulo;
  • caso contrário, imprimir Triângulo Acutângulo.

Resposta

#include <stdio.h>

int main() {
 double A, B, C;

 // Leitura dos três valores
 if (scanf("%lf %lf %lf", &A, &B, &C) !\(=3\)) {
 printf("Entrada inválida
");
 return 1;
 }

 // Ordenação simples: garantir A ≤ B ≤ C
 if (A > B) { double t = A; A = B; B = t; }
 if (B > C) { double t = B; B = C; C = t; }
 if (A > B) { double t = A; A = B; B = t; }

 // Verificar existência do triângulo
 if (A + B <= C) {
 printf("Nao forma triangulo
");
 } else {
 double soma\(2=\) A*A + B*B;
 double c\(2=\) C*C;

 if (c\(2==\) soma2) {
 printf("Triangulo Retangulo
");
 } else if (c2 > soma2) {
 printf("Triangulo Obtusangulo
");
 } else {
 printf("Triangulo Acutangulo
");
 }
 }

 return 0;
}

Exercícios relacionados