12-1三角形c语言,[蓝桥杯][算法提高VIP]12-1三角形 -题解(C语言代码)

#include typedef struct{

double x;

double y;

}_Power;

typedef struct{

_Power a;

_Power b;

_Power c;

}_Plan;

double side(_Power power1, _Power power2){//求两点间的距离(边长)

return

sqrt(pow(power1.x - power2.x, 2) + pow(power1.y - power2.y, 2));

}

double perimeter(_Plan triangle){//求周长

return

side(triangle.a, triangle.b) + side(triangle.a, triangle.c) + side(triangle.b, triangle.c);

}

double area(_Plan triangle){//求面积

double p = perimeter(triangle) / 2;

return

sqrt(p*(p - side(triangle.a, triangle.b))*(p - side(triangle.a, triangle.c))*(p - side(triangle.b, triangle.c)));

}

_Power core(_Plan triangle){//求外心

double A1 = 2 * (triangle.b.x - triangle.a.x), B1 = 2 * (triangle.b.y - triangle.a.y),

C1 = pow(triangle.b.x, 2) + pow(triangle.b.y, 2) - pow(triangle.a.x, 2) - pow(triangle.a.y, 2),

A2 = 2 * (triangle.c.x - triangle.b.x), B2 = 2 * (triangle.c.y - triangle.b.y),

C2 = pow(triangle.c.x, 2) + pow(triangle.c.y, 2) - pow(triangle.b.x, 2) - pow(triangle.b.y, 2);

_Power power;

power.x = ((C1*B2) - (C2*B1)) / ((A1*B2) - (A2*B1));

power.y = ((A1*C2) - (A2*C1)) / ((A1*B2) - (A2*B1));

return power;

}

_Power focus(_Plan triangle){//求重心

_Power power;

power.x = (triangle.a.x + triangle.b.x + triangle.c.x) / 3;

power.y = (triangle.a.y + triangle.b.y + triangle.c.y) / 3;

return power;

}

int main(){

_Plan plan;

scanf("%lf %lf %lf %lf %lf %lf",&plan.a.x, &plan.a.y,&plan.b.x, &plan.b.y,&plan.c.x, &plan.c.y);

printf("%.2lf\n", perimeter(plan));

printf("%.2lf\n", area(plan));

_Power power;

power = core(plan);

printf("%.2lf %.2lf\n", power.x, power.y);

power = focus(plan);

printf("%.2lf %.2lf\n", power.x, power.y);

return 0;

}

```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值