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.00n"); } 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.2fn", s); } } return 0;}