编写一个宏定义AREA(a,b,c),用于求一个边长为a,b和c的三角形的面积
2个回答
2013-10-19
展开全部
楼上的都没看清楚输入条件,是边长不是各点坐标。
#define AREA(a,b,c) sqrt(S(a,b,c)*(S(a,b,c)-a)*(S(a,b,c)-b)*(S(a,b,c)-c))
#define S(a,b,c) (a+b+c)/2
在使用宏之前建议加一个判断条件
if((a>(b+c))||(b>(a+c))||(c>(a+b))){
printf("Input Error\n");
}else{
printf("S=%f\n",AREA(a,b,c));
}
#define AREA(a,b,c) sqrt(S(a,b,c)*(S(a,b,c)-a)*(S(a,b,c)-b)*(S(a,b,c)-c))
#define S(a,b,c) (a+b+c)/2
在使用宏之前建议加一个判断条件
if((a>(b+c))||(b>(a+c))||(c>(a+b))){
printf("Input Error\n");
}else{
printf("S=%f\n",AREA(a,b,c));
}
2013-10-19
展开全部
#define AREA(a,b,c) fabs((b.x*a.y-a.x*b.y)+(c.x*b.y-b.xc.y)+(a.x*c.y-c.x*a.y))/2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询