三角形的面积(2)
一、题目要求
- 题目描述
输入三个非负整数a、b、c,如果能构成三角形就求出它的面积。如果不能构成三角形就输出“No”。请编程实现。 - 输入格式
输入有若干行,每行三个非负整数a、b、c。以0 0 0表示输入结束。 - 输出格式
对于每一行,如果能构成三角形就输出面积(结果保留2位小数),如果不能构成三角形就输出“No”。 - 输入样例
3 4 5
2 2 2
1 2 3
0 0 0 - 输出样例
6.00
1.73
No
二、完整代码
#include <iostream>
#include <cmath>
#include <iomanip>
bool Is(double a, double b, double c)
{
return (a + b > c) && (a + c > b) && (b + c > a);
}
double Area(double a, double b, double c)
{
double s = (a + b + c) / 2;
return sqrt(s * (s - a) * (s - b) * (s - c));
}
int main()
{
double a, b, c;
while (std::cin >> a>>b>>c)
{
if (a == 0&& b == 0&& c == 0)
{
break;
}
if (Is(a,b,c))
{
double area = Area(a, b, c);
std::cout << std::fixed << std::setprecision(2) << area << std::endl;
}
else
{
std::cout << "No" << std::endl;
}
}
return 0;
}
三、核心公式