This program is supposed to let the user input three numbers, rearrange them in increasing order, and identify the properties of the triangle.

For some reason the program works like a beauty, until it hits isRig. It doesn't display anything for isRig's answer. I'm boggled. I looked it over 5 or 6 times, but I'm just starting so I can't find anything. Or maybe im just blind.

Thank you!

Code:

//Included Files
#include <iostream>
using namespace std;
//Function Prototypes
bool isTri(float, float, float);
bool isIso(float, float, float);
bool isEqu(float, float, float);
bool isAcu(float, float, float);
bool isRig(float, float, float);
bool isObt(float, float, float);
//Main Function
int main() {
//Variable Declarations
float x,y,z;
//Inputs
cout << " Please enter the triangle lengths: "<<endl;
cout << " Length 1: ";
cin >> x;
cout << " Length 2: ";
cin >> y;
cout << " Length 3: ";
cin >> z;
//Answers
cout<<"The triangle is: ";
if (isTri(x,y,z))
{
if (isIso(x,y,z))
{
cout << "Isoceles ";
}
if (isEqu(x,y,z))
{
cout << "Equilateral ";
}
if (isAcu(x,y,z))
{
cout << "Acute ";
}
if (isRig(x,y,z))
{
cout << "Right ";
}
if (isObt(x,y,z))
{
cout << "Obtuse ";
}
}
else
{
cout <<"illegal ";
}
cout<<endl;
return 0; }
//isTriangle
bool isTri(float x,float y,float z)
{
if (x > 0 && ((x + y) > z))
return true;
else
return false;
}
//isIso
bool isIso(float x,float y,float z)
{
if (x == y || y == z)
return true;
else
return false;
}
//isEqu
bool isEqu(float x,float y, float z)
{
if (x == y && y == z)
return true;
else
return false;
}
//isAcu
bool isAcu(float x,float y, float z)
{
if ((x*x)+(y*y)>(z*z))
return true;
else
return false;
}
//isRig
bool isRig(float x,float y, float z)
{
if ((x+x)*(y*y) == (z*z))
return true;
else
return false;
}
//isObt
bool isObt(float x,float y,float z)
{
if ((x+x)*(y*y) < (z*z))
return true;
else
return false;
}