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
, Triângulo Obtusângulo
, Triângulo Acutângulo
)
Passo 1
O enunciado pede um programa em C que receba três valores
,
e
, 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
, o triângulo existe se e só se
Para classificar pelo tipo de ângulo, aplicamos o teorema de Pitágoras generalizado comparando
com
:
- se
, é retângulo; - se
, é obtusângulo; - se
, é 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:
Caso contrário, seguimos para a classificação de ângulos.
Passo 4
Comparar
com
:
- se
, imprimir Triângulo Retângulo; - senão, se
, 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;
}