算法提高 12-1三角形
2017-02-27 22:05
239 查看
算法提高 12-1三角形
时间限制:1.0s 内存限制:256.0MB
提交此题
问题描述
为二维空间中的点设计一个结构体,在此基础上为三角形设计一个结构体。分别设计独立的函数计算三角形的周长、面积、中心和重心。输入三个点,输出这三个点构成的三角形的周长、面积、外心和重心。结果保留小数点后2位数字。
样例输出
与上面的样例输入对应的输出。
例:
数据规模和约定
输入数据中每一个数的范围。
例:doule型表示数据。
哇,中心不会算,看别人的了
时间限制:1.0s 内存限制:256.0MB
提交此题
问题描述
为二维空间中的点设计一个结构体,在此基础上为三角形设计一个结构体。分别设计独立的函数计算三角形的周长、面积、中心和重心。输入三个点,输出这三个点构成的三角形的周长、面积、外心和重心。结果保留小数点后2位数字。
样例输出
与上面的样例输入对应的输出。
例:
数据规模和约定
输入数据中每一个数的范围。
例:doule型表示数据。
哇,中心不会算,看别人的了
#include <iostream> #include <cstdio> #include <cmath> #include <vector> #include <queue> #include <cstring> #include <algorithm> #include <cstdlib> #define for(i,x,n) for(int i=x;i<n;i++) #define ll long long int #define INF 0x3f3f3f3f #define MOD 1000000007 #define MAX_N 50005 using namespace std; struct triangle { double x,y; }; triangle a,b,c; double perimeter(triangle a,triangle b,triangle c)//周长 { double d1=sqrt(pow(a.x-b.x,2)+pow(a.y-b.y,2)); double d2=sqrt(pow(b.x-c.x,2)+pow(b.y-c.y,2)); double d3=sqrt(pow(a.x-c.x,2)+pow(a.y-c.y,2)); return d1+d2+d3; } double area(triangle a,triangle b,triangle c)//面积:海伦公式:s=sqrt(p*(p-a)*(p-b)*(p-c)) { double d1=sqrt(pow(a.x-b.x,2)+pow(a.y-b.y,2)); double d2=sqrt(pow(b.x-c.x,2)+pow(b.y-c.y,2)); double d3=sqrt(pow(a.x-c.x,2)+pow(a.y-c.y,2)); double p=(d1+d2+d3)/2; double area=sqrt(p*(p-d1)*(p-d2)*(p-d3)); return area; } triangle external(triangle aa,triangle bb,triangle cc)//中心 { double a=2*(aa.x-bb.x); double b=2*(aa.y-bb.y); double z=aa.x*aa.x-bb.x*bb.x+aa.y*aa.y-bb.y*bb.y; double a1=2*(cc.x-bb.x); double b1=2*(cc.y-bb.y); double z1=cc.x*cc.x-bb.x*bb.x+cc.y*cc.y-bb.y*bb.y; triangle ex; ex.x=((z*b1)-(z1*b))/((a*b1)-(a1*b)); ex.y=((a*z1)-(a1*z))/((a*b1)-(a1*b)); return ex; } triangle gravityOfCenter(triangle a,triangle b,triangle c)//重心 { triangle gra; gra.x=(a.x+b.x+c.x)/3; gra.y=(a.y+b.y+c.y)/3; return gra; } int main() { scanf("%lf %lf",&a.x,&a.y); scanf("%lf %lf",&b.x,&b.y); scanf("%lf %lf",&c.x,&c.y); printf("%.2lf\n",perimeter(a,b,c)); printf("%.2lf\n",area(a,b,c)); printf("%.2lf %.2lf\n",external(a,b,c).x,external(a,b,c).y); printf("%.2lf %.2lf\n",gravityOfCenter(a,b,c).x,gravityOfCenter(a,b,c).y); return 0; }
相关文章推荐
- 算法提高 12-1三角形
- 蓝桥杯 算法提高 12-1三角形 【计算几何_三角形】【全是板子】
- 算法提高 12-1三角形
- 算法提高 12-1三角形 外心坐标
- 蓝桥 ADV-230 算法提高 12-1三角形 【数学公式】
- 蓝桥杯算法提高 12-1三角形
- 算法提高 12-1三角形
- 算法提高 12-1三角形
- 算法提高 ADV-230 12-1三角形
- 算法提高 12-1三角形
- 算法提高 12-1三角形
- 算法提高 12-1三角形
- 蓝桥杯 算法提高 12-1三角形 (Java解题)
- 蓝桥杯 算法提高 12-2扑克排序
- 算法提高 输出正反三角形
- 算法提高 ADV-231 12-2扑克排序
- 蓝桥杯ADV-88——算法提高 输出正反三角形
- ADV-84-算法提高-图形输出、ADV-88-算法提高-输出正反三角形
- 算法提高 12-2扑克排序
- 算法提高 输出正反三角形