一、题目链接
http://noi.openjudge.cn/ch0103/17/
二、解题思路
◎ 高斯鞋带公式(x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2)/2用于计算三角形面积,计算结果可能为负;
◎ C++的cmath库提供abs函数计算一个数的绝对值,称为绝对值操作,例如:
→ abs(-1)得到1;
→ abs(1.5)得到1.5;
注意:abs函数括号中的数据是什么类型,得到的绝对值结果就是什么类型;
◎ 输入三个顶点的横坐标和纵坐标,通过高斯鞋带公式计算三角形面积。
三、实施步骤
◎ 首先,定义并输入六个float类型的浮点数x1、y1、x2、y2、x3、y3,分别代表三个顶点的横坐标、纵坐标;
◎ 其次,定义float类型的浮点数ans,代表三个顶点构成三角形的面积,令ans=abs(x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2)/2;
◎ 最后,通过格式控制输出语句printf配合"%.2f"格式控制标记,输出ans。
四、C++程序
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
float x1;
float y1;
float x2;
float y2;
float x3;
float y3;
cin >> x1;
cin >> y1;
cin >> x2;
cin >> y2;
cin >> x3;
cin >> y3;
float ans = abs(x1 * y2 + x2 * y3 + x3 * y1 - x1 * y3 - x2 * y1 - x3 * y2) / 2;
printf("%.2f", ans);
return 0;
}