1442 - C语言-宏面积
时间限制 : 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> int main () { float a,b,c,area,s; scanf("%f%f%f",&a,&b,&c); s=(a+b+c)/2.0; area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("%.3f",area); return 0; }
C++解答
#include "stdio.h" #include "math.h" #define zc(a,b,c) s=(a+b+c)/2; #define area(a,b,c,s) ar=sqrt(s*(s-a)*(s-b)*(s-c)); int main(int argc, char* argv[]) { double a,b,c,s,ar; while(~scanf("%lf%lf%lf",&a,&b,&c)) { zc(a,b,c); area(a,b,c,s); printf("%.3lf\n",ar); } return 0; }