作者:贵族灬阿宝 | 来源:互联网 | 2023-07-25 17:36
要求:海伦公式:ssqrt(p*(p-a)*(p-b*)(p-c)),其中p(a+b+c)2,a,b,c为三角形的三个边。定义两个带参数的宏,一个用来求p,另一个用来求s题目分
要求:
海伦公式:s=sqrt(p*(p-a)*(p-b*)(p-c)),其中p=(a+b+c)/2,a,b,c为三角形的三个边。定义两个带参数的宏,一个用来求p,另一个用来求s
题目分析:
首先,题目要求是通过输入三角形的三条边,输出三角形的面积。因为不是任意的三条边都可以构成三角形,所以应该先对输入的三条边进行判断,如果满足任意两条边的和大于第三边,则进行计算;如果不满足,则输出错误。然后,题目要求使用带参数宏定义的方法,所以应该熟悉宏定义的使用(#define 宏名(参数表) 字符串)。
代码:
#define p(a,b,c) (a+b+c)/2
#define s(p,a,b,c) sqrt(p*(p-a)*(p-b)*(p-c))
#include
#include
using namespace std;
int main(){
double a1,b1,c1;
double p1,s1;
cout<<"Please input the three side of the triangle:";
cin>>a1>>b1>>c1;
if((a1+b1)>c1&&(a1+c1>b1)&&(b1+c1>a1)){
p1=p(a1,b1,c1);
s1=s(p1,a1,b1,c1);
cout<<"Output:"<
说明:为了更好的说明带参数宏定义的参数的功能,定义的变量名称和宏定义的参数不同