1849 - 课后习题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<stdio.h> #include<math.h> #define S(x,y,z) (x+y+z)/2; #define area(x,y,z,S) sqrt(S*(S-x)*(S-y)*(S-z)) main() { double a,b,c,S; scanf("%lf%lf%lf",&a,&b,&c); S=S(a,b,c); printf("%.3f\n",area(a,b,c,S)); }
C++解答
#include<bits/stdc++.h> using namespace std; double a,b,c,x; int main() { cin>>a>>b>>c; x=(a+b+c)/2; printf("%.3f",sqrt(x*(x-a)*(x-b)*(x-c))); return 0; }