Bem vindo a aula 63 de nosso curso gratuito de programação com a linguagem C.
Na aula de hoje vamos resolver o exercício número 10.
10) Faça um programa que, dado três valores a, b e c, verifique se eles podem ser os comprimentos dos lados de um triângulo. Caso positivo, seu programa deve informar também se o triângulo é equilátero, isósceles ou escaleno. Caso contrário, seu programa deve escrever a mensagem “Não formam um triângulo”.
Este exercício é interessante porque aqui podemos praticar a ideia de dividir para conquistar. As vezes na programação ficamos tão fixados no problema como um todo que acabamos não conseguindo resolver. Dividir o problema em partes facilita tanto a compreensão do problema quanto a solução propriamente dita.
Perceba que neste problema a primeira coisa que precisamos resolver é: descobrir se os três comprimentos informados pelo usuário foram um triângulo.
Para facilitar vamos assumir que o usuário irá informar sempre valores positivos. Assim, para que formem um triângulo a soma de quaisquer dois valores precisa ser maior que o terceiro valor restante, ou seja: sejam três inteiros positivos a, b e c. Eles formam um triângulo se:
(a + b) > c e (a + c) > b e (b + c) > a
Verificado esta condição, aí então vamos verificar se é um triângulo equilátero (3 lados iguais), isósceles (2 lados iguais) ou escaleno (3 lados diferentes).
int main() { int a, b, c; printf("Digite tres valores: "); scanf("%d%d%d", &a, &b, &c); if(a + b > c && a + c > b && b + c > a){ printf("Os 3 lados formam um triangulo!\n"); if(a == b && a == c) printf("Equilatero\n"); else if(a == b || a == c || b == c) printf("Isosceles\n"); else printf("Escaleno\n"); } else printf("Os 3 lados NAO formam um trinagulo!\n"); }