两种方法编写程序,输入三角形的三条边,判断是否能够成三角形,如果能够成 三角形,输入构成的是等腰三角形、等边三角形、直角三角形,还是普通的三角 形。考虑整型、小数等不同类型数的三角形。 方法 1 函数原型:int getType(int a, int b, int c); int getType(double a, double b, double c); 方法 2 函数模板原型: template<typename T> int getType(T a, T b, T c)
时间: 2024-01-06 22:06:42 浏览: 85
方法 1:
int getType(int a, int b, int c)
{
if (a + b > c && a + c > b && b + c > a) // 判断是否能够成三角形
{
if (a == b || a == c || b == c) // 判断是否为等腰三角形
{
if (a == b && b == c) // 判断是否为等边三角形
{
return 3;
}
else
{
return 1;
}
}
else if (a * a + b * b == c * c || a * a + c * c == b * b || b * b + c * c == a * a) // 判断是否为直角三角形
{
return 2;
}
else // 普通三角形
{
return 0;
}
}
else // 不能构成三角形
{
return -1;
}
}
int getType(double a, double b, double c)
{
if (a + b > c && a + c > b && b + c > a) // 判断是否能够成三角形
{
if (a == b || a == c || b == c) // 判断是否为等腰三角形
{
if (a == b && b == c) // 判断是否为等边三角形
{
return 3;
}
else
{
return 1;
}
}
else if (a * a + b * b == c * c || a * a + c * c == b * b || b * b + c * c == a * a) // 判断是否为直角三角形
{
return 2;
}
else // 普通三角形
{
return 0;
}
}
else // 不能构成三角形
{
return -1;
}
}
方法 2:
template<typename T>
int getType(T a, T b, T c)
{
if (a + b > c && a + c > b && b + c > a) // 判断是否能够成三角形
{
if (a == b || a == c || b == c) // 判断是否为等腰三角形
{
if (a == b && b == c) // 判断是否为等边三角形
{
return 3;
}
else
{
return 1;
}
}
else if (a * a + b * b == c * c || a * a + c * c == b * b || b * b + c * c == a * a) // 判断是否为直角三角形
{
return 2;
}
else // 普通三角形
{
return 0;
}
}
else // 不能构成三角形
{
return -1;
}
}
阅读全文