Podemos pensar em alguns exemplos de tamanhos de lados que não podem formar triângulo (como por exemplo, dois lados muito pequenos e um lado muito grande). Para que os lados A, B e C sejam capazes de formar um triângulo, é necessário a soma de dois dos lados seja sempre maior que o terceiro lado. Ou seja,
A<B+CB<A+CC<A+B
Cumprindo com essas três inequações, temos três lados de um triângulo.
#include <stdlib.h>
#include <stdio.h>
int main(){
double A, B, C;
scanf("%lf %lf %lf", &A, &B, &C);
if(A < B + C && B < A + C && C < A + B){
printf("Perimetro = %.1lf\n", A + B + C);
}else{
printf("Area = %.1lf\n", (A + B)/2 * C);
}
return 0;
}
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
double A, B, C;
cin >> A >> B >> C;
if(A < B + C && B < A + C && C < A + B){
cout << "Perimetro = " << setprecision(1) << fixed << A + B + C << endl;
}else{
cout << "Area = " << setprecision(1) << fixed << (A + B)/2 * C << endl;
}
return 0;
}
var input = require('fs').readFileSync('/dev/stdin', 'utf8');
var lines = input.split('\n');
let [A, B, C] = lines.shift().trim().split(' ').map((x) => parseFloat(x));
if(A < B + C && B < A + C && C < A + B){
console.log(`Perimetro = ${(A + B + C).toFixed(1)}`);
}else{
console.log(`Area = ${((A + B)/2 * C).toFixed(1)}`);
}
A, B, C = [float(x) for x in input().strip().split(' ')]
if(A < B + C and B < A + C and C < A + B):
print(f"Perimetro = {(A + B + C):.1f}")
else:
print(f"Area = {((A + B)/2 * C):.1f}")