三角形面积=sqrt(s*(s-a)*(s-b)*(s-c)) 其中s=(a+b+c)/2,a、b、c为三角形的三边。 定义两个带参的宏,一个用来求area, 另一个宏用来求s。 写程序,在程序中用带实参的宏名来求面积area。
时间: 2023-05-31 16:18:55 浏览: 205
求三角形面积-C语言入门教程
### 回答1:
三角形面积=sqrt(s*(s-a)*(s-b)*(s-c)) 其中s=(a+b+c)/2,a、b、c为三角形的三边。
定义两个带参的宏,一个用来求area,另一个宏用来求s。
#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)
写程序,在程序中用带实参的宏名来求面积area。
#include <stdio.h>
#include <math.h>
#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)
int main()
{
float a,b,c;
printf("请输入三角形的三边长:\n");
scanf("%f%f%f",&a,&b,&c);
printf("三角形的面积为:%f\n",AREA(a,b,c));
return ;
}
### 回答2:
三角形的面积公式是广为人知的,但对于频繁需要计算面积的情况,手动计算太过繁琐,因此我们可以通过宏定义来简化代码。
我们可以定义两个带参的宏:
1. 宏s用来求s值,其公式为:
#define s(a, b, c) ((a+b+c)/2.0)
这个宏接受三个参数a、b、c,返回参数的和除以2.0
2. 宏area用来求三角形面积,其公式为:
#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))
这个宏接受三个参数a、b、c,返回对应三角形的面积。
在程序中,我们可以直接使用宏名加实参的方式来求面积:
#include <stdio.h>
#include <math.h>
#define s(a, b, c) ((a+b+c)/2.0)
#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))
int main()
{
double a = 5.0, b = 6.0, c = 7.0;
printf("Area of triangle with side length a=%.2f, b=%.2f, c=%.2f is %.2f", a, b, c, area(a,b,c));
return 0;
}
上面代码中,我们定义了三个变量a、b、c,分别代表三角形的三边,然后使用宏名加实参的方式来计算面积并输出结果。
输出结果为:
Area of triangle with side length a=5.00, b=6.00, c=7.00 is 14.70
这就是使用带参宏名来计算三角形面积的方法。
### 回答3:
三角形面积公式是一个经典的数学公式,在计算机编程中也会经常用到。该公式的中文表达为:三角形面积等于半周长与三边差积的平方根,其中半周长等于三边之和的一半。用数学符号表示为:S = √[s(s-a)(s-b)(s-c)],其中s = (a+b+c)/2。
为了方便计算三角形面积和半周长,我们可以定义两个带参数的宏,一个用来求面积area,另一个用来求半周长s。这样一来,在程序中只需要调用这两个宏名,并给定三角形的三条边a、b、c的数值参数,就可以直接求得该三角形的面积了。
下面是一个例子程序,用带实参的宏名来求三角形面积:
#include <stdio.h>
#include <math.h>
#define SEMI_PERIMETER(a, b, c) (((a) + (b) + (c)) / 2.0)
#define TRIGON_AREA(a, b, c, s) (sqrt((s) * ((s) - (a)) * ((s) - (b)) * ((s) - (c))))
int main()
{
double a, b, c, s, area;
printf("Please input three sides of a triangle:\n");
scanf("%lf %lf %lf", &a, &b, &c);
s = SEMI_PERIMETER(a, b, c);
area = TRIGON_AREA(a, b, c, s);
printf("The triangle area is: %lf\n", area);
return 0;
}
在程序中,我们先定义了两个带参数的宏:SEMI_PERIMETER用来计算半周长,TRIGON_AREA用来计算三角形面积。然后,在主函数中,我们给三角形的三条边a、b、c输入数值,并调用宏求解半周长和面积,最后将求得的面积输出到终端上。
这样一来,我们就可以通过简单的宏定义和宏调用,在程序中快速计算三角形的面积了。这不仅提高了程序的运行效率,还能简化程序的编写和修改,让代码更加紧凑、易读、易懂。
阅读全文