问题:
海伦公式求面积,输入一个数字,代表N个三角形,先判断是否是三角形,不是输出NaN,是的话利用海伦公式输出面积(保留两位小数);
例如:输入
2
1.0 2.0 3.0
3.0 4.0 5.0
输出:
NaN
6.00
分析:
这道题和第一大题差不多。采用一个while循环,每次输入三角形三边的值,满足条件(任意两边之和大于第三边),则能组成三角形,再运用海伦公式求面积,按标准输出。
代码:
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
int n;
cin >> n;
while (n > 0) //while 循环条件
{
float a,b,c,p,s;
cin >> a >> b >> c;
if ((a + b <= c) || (a + c <= b) || (b + c) <= a)
{
cout << "NaN" << endl;
}
else
{
p = (a + b + c) / 2;
s = sqrt(p * (p - a) * (p - b) * (p - c));
printf("%.2f\n", s); //格式化:保留两位小数输出
}
n--;
}
return 0;
}