abc为三角形三年前,定义2个带参数的宏 一个用来求s 另一个来求area 写程序用带参数的宏求三角形面积
时间: 2024-02-03 20:11:44 浏览: 89
下面是用带参数的宏来求三角形面积的程序:
```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
```
注意,在定义宏的时候,需要使用括号将参数括起来,以防止运算顺序出错。
abc为三角形三边定义2个带参数的宏,一个用来求是,一个用来求area,写程序用带参数的宏求三角形面积
下面是求三角形周长和面积的宏定义:
```c
#define perimeter(a, b, c) (a + b + c)
#define area(a, b, c) (sqrt((a+b+c)*(a+b-c)*(b+c-a)*(a-b+c))/4)
```
其中,a、b、c表示三角形的三条边长。使用方式如下:
```c
#include <stdio.h>
#include <math.h>
#define perimeter(a, b, c) (a + b + c)
#define area(a, b, c) (sqrt((a+b+c)*(a+b-c)*(b+c-a)*(a-b+c))/4)
int main()
{
double a, b, c;
printf("请输入三角形的三条边长:");
scanf("%lf %lf %lf", &a, &b, &c);
double p = perimeter(a, b, c);
double s = area(a, b, c);
printf("周长:%.2lf\n", p);
printf("面积:%.2lf\n", s);
return 0;
}
```
其中,`perimeter(a, b, c)`表示求三角形的周长,`area(a, b, c)`表示求三角形的面积。利用这两个宏定义,可以方便地计算三角形的周长和面积。
阅读全文