1330 - C语言程序设计教程(第三版)课后习题9.3
时间限制 : 1 秒
内存限制 : 128 MB
三角形面积=SQRT(S(S-a)(S-b)*(S-c)) 其中S=(a+b+c)/2,a、b、c为三角形的三边。定义两个带参的宏,一个用来求area,另一个宏用来求S。 写程序,在程序中用带实参的宏名来求面积area。
题目输入
a b c三角形的三条边,可以是小数。
题目输出
三角形面积,保留3位小数
输入/输出样例
输入格式
3 4 5
输出格式
6.000
C++解答
#include<iostream> #include<cmath> #include<cstdio> #define S(a,b,c) (a+b+c)/2 #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)) using namespace std; int main() { double a,b,c; cin>>a>>b>>c; printf("%.3lf\n",AREA(a,b,c)); return 0; }