杭電OJ-2036

題目鏈接:題目鏈接

image.png

解題思路:在求N邊形面積的時候,可以將多邊形分解成為N-2個三角形的面積相加,如在算5邊形的時候,可以分解成3個三角形,之后計算其面積再進行相加。如下圖:
image.png

image.png

代碼實現(xiàn)如下:
以(0.0)作為定點

#include<stdio.h>
#include<math.h>
typedef struct Point
{
    double x, y;   //定義坐標(biāo)點
}point;
point p[105];
double area(point *p, int n)
{
    if (n < 3)
        return 0;
    double sum = 0;
    p[n + 1] = p[1];
    for (int i = 1;i <= n;i++)
        sum += p[i].x*p[i + 1].y - p[i].y*p[i + 1].x;//計算每個三角形的面積
    sum = fabs(sum) / 2.0;
    printf("%.1lf\n", sum);
}
int main(void)
{
    double area(point *p, int n);
    int n;
    while (scanf("%d", &n) != EOF)
    {
        if (n == 0)
            continue;
        for (int i = 1;i <= n;i++)
            scanf("%lf %lf", &p[i].x, &p[i].y);
        area(p, n);
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容