s=√(p(p-a)(p-b)(p-c))
p=(a+b+c) / 2
如果两边之和小于第三边,或者两边之差大于第三边,则输出 0.00
输入示例:
2
1 2 3
3 4 5
输出示例:
0.00
6.00
#include <stdio.h>
#include <math.h>
#include <algorithm>
using namespace std;
int main(void)
{
int n;
scanf("%d", &n);
int a[n][3];//保存三角形的三条边
for(int i = 0; i < n; i++) //输入数据
{
for(int j = 0; j < 3; j++)
{
scanf("%d", &a[i][j]);
}
}
for(int i = 0; i < n; i++)
{
sort(a[i], a[i] + 3);
if(a[i][0] + a[i][1] <= a[i][2])
{
printf("0.00\n");
}
else
{
int p = (a[i][0] + a[i][1] + a[i][2]) / 2;
double s = sqrt(p * (p - a[i][0]) * (p - a[i][1]) * (p - a[i][2]) * 1.0);
printf("%0.2f\n", s);
}
}
return 0;
}