三角形面积=SQRT(S*(S-a)*(S-b)*(S-c)) 其中S=(a+b+c)/2,a、b、c为三角形的三边。 定义两个带参的宏,一个用来求area, 另一个宏用来求S。 写程序,在程序中用带

三角形面积=SQRT(S*(S-a)(S-b)(S-c)) 其中S=(a+b+c)/2,a、b、c为三角形的三边。 定义两个带参的宏,一个用来求area, 另一个宏用来求S。 写程序,在程序中用带实参的宏名来求面积area。

Input
a b c三角形的三条边,可以是小数。

Output
三角形面积,保留3位小数

Sample Input
3 4 5
Sample Output
6.000

#include<stdio.h>
#include<math.h>
#define S(a,b,c) (a+b+c)/2
#define area(a,b,c,S) sqrt(S*(S-a)*(S-b)*(S-c))
int main()
{
    float a,b,c,t;
    scanf("%f %f %f",&a,&b,&c);
    t=area(a,b,c,S(a,b,c));
    printf("%.3f",t);
    return 0;
}

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 三角形面积=sqrt(s*(s-a)*(s-b)*(s-c)) 其中s=(a+b+c)/2,a、b、c为三角形三边定义两个带参一个用来area,另一个用来s。 #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)) #define S(a,b,c) ((a+b+c)/2) 程序,在程序中用实参的名来面积area。 #include <stdio.h> #include <math.h> #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)) #define S(a,b,c) ((a+b+c)/2) int main() { float a,b,c; printf("请输入三角形三边长:\n"); scanf("%f%f%f",&a,&b,&c); printf("三角形面积为:%f\n",AREA(a,b,c)); return ; } ### 回答2: 三角形面积公式是广为人知的,但对于频繁需要计算面积的情况,手动计算太过繁琐,因此我们可以通过定义来简化代码。 我们可以定义两个带参: 1. s用来s值,其公式为: #define s(a, b, c) ((a+b+c)/2.0) 这个接受三个参数a、b、c,返回参数的和除以2.0 2. area用来三角形面积,其公式为: #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)) 这个接受三个参数a、b、c,返回对应三角形面积。 在程序中,我们可以直接使用名加实参的方式来面积: #include <stdio.h> #include <math.h> #define s(a, b, c) ((a+b+c)/2.0) #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)) int main() { double a = 5.0, b = 6.0, c = 7.0; printf("Area of triangle with side length a=%.2f, b=%.2f, c=%.2f is %.2f", a, b, c, area(a,b,c)); return 0; } 上面代码中,我们定义了三个变量a、b、c,分别代表三角形三边,然后使用名加实参的方式来计算面积并输出结果。 输出结果为: Area of triangle with side length a=5.00, b=6.00, c=7.00 is 14.70 这就是使用带参名来计算三角形面积的方法。 ### 回答3: 三角形面积公式是一个经典的数学公式,在计算机编程中也会经常用到。该公式的中文表达为:三角形面积等于半周长与三边差积的平方根,其中半周长等于三边之和的一半。用数学符号表示为:S = √[s(s-a)(s-b)(s-c)],其中s = (a+b+c)/2。 为了方便计算三角形面积和半周长,我们可以定义两个带参数的一个用来面积area,另一个用来半周长s。这样一来,在程序中只需要调用这两个名,并给定三角形的三条边a、b、c的数值参数,就可以直接得该三角形面积了。 下面是一个例子程序,用实参的名来三角形面积: #include <stdio.h> #include <math.h> #define SEMI_PERIMETER(a, b, c) (((a) + (b) + (c)) / 2.0) #define TRIGON_AREA(a, b, c, s) (sqrt((s) * ((s) - (a)) * ((s) - (b)) * ((s) - (c)))) int main() { double a, b, c, s, area; printf("Please input three sides of a triangle:\n"); scanf("%lf %lf %lf", &a, &b, &c); s = SEMI_PERIMETER(a, b, c); area = TRIGON_AREA(a, b, c, s); printf("The triangle area is: %lf\n", area); return 0; } 在程序中,我们先定义两个带参数的:SEMI_PERIMETER用来计算半周长,TRIGON_AREA用来计算三角形面积。然后,在主函数中,我们给三角形的三条边a、b、c输入数值,并调用解半周长和面积,最后将得的面积输出到终端上。 这样一来,我们就可以通过简单的定义调用,在程序中快速计算三角形面积了。这不仅提高了程序的运行效率,还能简化程序的编和修改,让代码更加紧凑、易读、易懂。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值