c语言课设四边形计算报告,c语言课程设计关于四边形证明对于任意的四边形ABCD对角线AC与BD的中点分别是M、N,AB、CD的延长线交于R。验证三...

共回答了14个问题采纳率:100%

/*

AC中点M,BD中点N,BA、CD延长后交于R

验证area(ABCD)==4*area(RMN)

*/#include

#include

#include

#define EPS 1e-10typedef struct

{

double x;

double y;

} Point;/*两点之间的直线距离*/

double length(Point *A,Point *B)

{

return sqrt(pow(A->x-B->x,2)+pow(A->y-B->y,2));

}double area_of_triangle(Point A,Point B,Point C)

{

double area,a,b,c,p;

a=length(&B,&C);

b=length(&C,&A);

c=length(&A,&B);

p=(a+b+c)/2;

area=sqrt(p*(p-a)*(p-b)*(p-c));

return area;

}/*初步检测四边形*/

int ok(Point *p)

{

double side[4];/*4边长*/

int i,j;

for(i=0;iEPS)

{

fprintf(stderr,"凹四边形!不行!");

exit(2); /*异常结束2*/

}/*这里计算△RMN的面积*/

rmn = area_of_triangle(r,m,n);/*这里是二者相除,看它是否非常接近于4.00*/

printf("as a resultABCD:RMN=%4.2f:%4.2f=%4.2f"

,abcd,rmn,abcd/rmn);}/*运行情况举例

input (x,y) of point A:0,0

input (x,y) of point B:2,0

input (x,y) of point C:1.5,1.5

input (x,y) of point D:0.5,1

as a result

ABCD:RMN=1.87:0.47=4.00

Press any key to continue

*/

参考于: http://bbs.bccn.net/thread-75642-2-1.html

1年前

4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值