1034:计算三角形面积
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 39036 通过数: 11764
【题目描述】
平面上有一个三角形,它的三个顶点坐标分别为(x1,y1),(x2,y2),(x3,y3)(x1,y1),(x2,y2),(x3,y3),那么请问这个三角形的面积是多少,精确到小数点后两位。
【输入】
输入仅一行,包括66个单精度浮点数,分别对应x1,y1,x2,y2,x3,y3x1,y1,x2,y2,x3,y3。
【输出】
输出也是一行,输出三角形的面积,精确到小数点后两位。
【输入样例】
0 0 4 0 0 3
【输出样例】
6.00
【分析】先用公式求出三条边的长度a,b,c,再使用海伦公式,,求出三角形的面积。
【程序】
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
float getLength(float xa,float ya,float xb,float yb){
return sqrt(pow((xa-xb),2)+pow((ya-yb),2));
}
int main(){
float xa,ya,xb,yb,xc,yc,r,s,a,b,c;
cin >> xa >> ya >> xb >> yb>> xc >> yc;
a = getLength(xa,ya,xb,yb);
b = getLength(xb,yb,xc,yc);
c = getLength(xc,yc,xa,ya);
r = (a+b+c)/2;
s = sqrt(r*(r-a)*(r-b)*(r-c));
printf("%.2f",s);
return 0;
}