首页 > 试题广场 >

三角形面积为: area=sx(s-a)x(s-b

[问答题]

三角形面积为:

area=sx(s-a)x(s-b)x(s-c)  g= (a+b+c)/2

其中a、b、c分别是三角形的3条边。请分别定义计算s和area的宏,再使用函数实现。比较两者在形式上和使用上的区别。

推荐

(1)使用宏实现

#include <stdio.h>
#include <math.h>
#define S(a ,b, c) ((a)+(b)+(c))/2
#define AREA(s,a,b,c) sqrt((s)*((s)-(a))*((s)-(b))*((s)-(c)))
int main(void)
{
double a, b, c, s;
printf("input a, b, c: ");
scanf("%lf%lf%lf", &a, &b, &c);
s = S(a,b,c);
printf("s = %lf, area = %lf\n", s, AREA(s,a,b,c));
return 0;
}


(2)使用函数实现

#include <stdio.h>
#include <math.h>
double f1(double a, double b, double c)
{
return (a+b+c)/2;
}
double f2(double s, double a, double b, double c)
{
return sqrt(s*(s-a)*(s-b)*(s-c));
}
int main(void)
{
double a, b, c, s;
printf("input a, b, c: ");
scanf("%lf%lf%lf", &a, &b, &c);
s = f1(a,b,c);
printf("s = %lf, area = %lf\n", s, f2(s,a,b,c));
return 0;
}

发表于 2018-05-06 21:44:07 回复(0)