定义2个宏求三角形面积
时间: 2023-08-02 16:16:06 浏览: 170
以下是两个宏定义,用于计算三角形面积:
```
#define AREA(base, height) ((base) * (height) * 0.5)
```
该宏定义使用三角形的底边和高作为参数,并返回三角形的面积。
```
#define AREA_HERO(a, b, c) \
(sqrt(((a) + (b) + (c)) * ((a) + (b) - (c)) * ((a) - (b) + (c)) * ((-a) + (b) + (c))) / 4)
```
该宏定义使用三角形的三条边作为参数,并返回三角形的面积。它使用海伦公式来计算三角形的面积,其中 a、b 和 c 分别是三角形的三条边的长度。
相关问题
abc为三角形三年前,定义2个带参数的宏 一个用来求s 另一个来求area 写程序用带参数的宏求三角形面积
下面是用带参数的宏来求三角形面积的程序:
```c
#include<stdio.h>
#define S(a,b,c) ((a)+(b)+(c))/2.0
#define AREA(s,a,b,c) sqrt((s)*((s)-(a))*((s)-(b))*((s)-(c)))
int main()
{
double a=3, b=4, c=5, s=S(a,b,c), area=AREA(s,a,b,c);
printf("a=%lf, b=%lf, c=%lf\n",a,b,c);
printf("s=%lf\n",s);
printf("area=%lf\n",area);
return 0;
}
```
其中,`S`是求半周长的宏,`AREA`是求面积的宏。在程序中,我们定义了三个边长`a`、`b`、`c`,通过调用宏来求出半周长`s`和面积`area`,最后输出结果。
abc为三角形三边定义2个带参数的宏,一个用来求s,一个用来求area,写程序用带参数的宏求三角形面积
假设三角形的三边分别为a、b、c,可以定义两个带参数的宏:
```c++
#define S(a,b,c) ((a+b+c)/2.0) // 求s
#define AREA(a,b,c,s) (sqrt(s*(s-a)*(s-b)*(s-c))) // 求面积
```
其中,S宏的作用是求三角形的半周长s,而AREA宏则利用三角形的半周长和三边长度计算三角形的面积。
使用这两个宏计算三角形面积的程序如下:
```c++
#include <iostream>
#include <cmath>
using namespace std;
#define S(a,b,c) ((a+b+c)/2.0) // 求s
#define AREA(a,b,c,s) (sqrt(s*(s-a)*(s-b)*(s-c))) // 求面积
int main() {
double a, b, c, s, area;
cout << "请输入三角形的三条边长:";
cin >> a >> b >> c;
s = S(a, b, c);
area = AREA(a, b, c, s);
cout << "三角形的面积为:" << area << endl;
return 0;
}
```
运行结果:
```
请输入三角形的三条边长:3 4 5
三角形的面积为:6
```
注意,在定义宏的时候,需要使用括号将参数括起来,以防止运算顺序出错。
阅读全文