0
What mistakes I’m making?
Read 3 floating point values A, B and C and order them in descending order, so that side A represents the largest of the 3 sides. Then, determine the type of triangle these three sides form, based on the following cases, always writing an appropriate message:
if A B+C, display message: NO TRIANGLE
if A2 = B2 + C2, display the message: RECTANGULAR TRIANGLE
if A2 > B2 + C2, display the message: OBTUSE TRIANGLE
if A2 < B2 + C2, display the message: ACUTANGULO TRIANGLE
if the three sides are equal, display the message: EQUILATERAL TRIANGLE
if only two sides are equal, display the message: ISOSCELE TRIANGLE
Code:
#include <iostream>
using namespace std;
int main(){
double a=0, b=0, c=0, ValorUm=0, ValorDois=0, ValorTres=0, b2=0, a2=0, c2=0, bc=0, b2c2=0;
//aqui o usuário insere os valores...Usei as variaveis ValorUm...
//para depois inverter para a ordem "a" "b" "c" , os valores tem que
ficar // em ordem decrecente, o valor maior tem que ser a ..por
exemplo //a== 10 , b == 5 , c == 3 do maior para o menor
cin>>ValorUm>>ValorDois>>ValorTres;
/*usei os if para inverter as posições, pelo oque testei o problema
nao esta nessa parte de trocar as posicoes*/
if(ValorUm<ValorDois&&ValorDois<ValorTres) {
c=ValorUm;
b=ValorDois;
a=ValorTres;
cout<<endl<<a<<endl<<b<<endl<<c<<endl;
}if(ValorUm>ValorDois&&ValorDois>ValorTres){
a=ValorUm;
b=ValorDois;
c=ValorTres;
cout<<endl<<a<<endl<<b<<endl<<c<<endl;
}if(ValorDois>ValorUm&&ValorTres<ValorDois&&ValorTres<ValorUm){
a=ValorDois;
b=ValorUm;
c=ValorTres;
cout<<endl<<a<<endl<<b<<endl<<c<<endl;
}if(ValorUm>ValorDois&&ValorUm<ValorTres){
a=ValorTres;
b=ValorUm;
c=ValorDois;
cout<<endl<<a<<endl<<b<<endl<<c<<endl;
}if(ValorUm>ValorDois&&ValorTres<ValorUm&&ValorDois<ValorTres){
a=ValorUm;
b=ValorTres;
c=ValorDois;cout<<endl<<a<<endl<<b<<endl<<c<<endl;
}
bc=b+c;
a2=a*a;
b2=b*b;
c2=c*c;
b2c2=b2+c2;
/*até onde sei é aqui , que está o problema o TRIANGULO OBTUSANGULO
e o TRIANGULO ACUTANGULO está com diversos erros*/
//a2 a*a b2 c2... b2c2 é b2+c2 e bc é b+c
if (ValorUm>ValorDois+ValorTres || ValorUm==ValorDois+ValorTres){
cout<<"NAO FORMA TRIANGULO"<<endl;
}
else
if(a2==b2c2)
{
cout<<"TRIANGULO RETANGULO"<<endl;
}
if(a2>b2c2){
cout<<"TRIANGULO OBTUSANGULO"<<endl;
}
if(a2 < b2c2){
cout<<"TRIANGULO ACUTANGULO"<<endl;
}
if(a==c && a!=b){
cout<<"TRIANGULO ISOSCELES"<<endl;
}
if(a==b && a!=c){
cout<<"TRIANGULO ISOSCELES"<<endl;
}
if(a == b && a == c ){
cout<<"TRIANGULO EQUILATERO"<<endl;
}
return 0;
}
Your code is very polluted, it could simplify the if and Else, but that’s not the case, I ran your code and it seems all ok, what would be the error exactly?
– Luiz Augusto