1. 程式人生 > >nyoj 67 三角形面積 【幾何】

nyoj 67 三角形面積 【幾何】

三角形面積

時間限制:3000 ms  |  記憶體限制:65535 KB 難度:2
描述
給你三個點,表示一個三角形的三個頂點,現你的任務是求出該三角形的面積
輸入
每行是一組測試資料,有6個整數x1,y1,x2,y2,x3,y3分別表示三個點的橫縱座標。(座標值都在0到10000之間)
輸入0 0 0 0 0 0表示輸入結束
測試資料不超過10000組
輸出
輸出這三個點所代表的三角形的面積,結果精確到小數點後1位(即使是整數也要輸出一位小數位)
樣例輸入
0 0 1 1 1 3
0 1 1 0 0 0
0 0 0 0 0 0
樣例輸出
1.0
0.5

分析:

知道座標值求三角形面積這道題就好做了。

程式碼:

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#include<cmath>
using namespace std;


int main()
{
    double x1,x2,x3;
    double y1,y2,y3;
    while(scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3)!=EOF)
    {
        if(!x1&&!x2&&!x3&&!y1&&!y2&&!y3)
            break;
        double s;
        s=fabs((x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2)/2.0);
        printf("%.1lf\n",s);
    }
    return 0;
}