用带实参的宏名通过“海伦公式”求任意三角形的面积

#include <stdio.h>
#include <math.h> /*因本程序中用到了sqrt函数,所以必须*/
#define S(a,b,c) (a+b+c)/2.0 /*由于实参是定义为int型,所以语句中2必须写为实数格式2.0,否则将无法得出正确结果;若实参被定义为float型,则2可不必特意写成实数格式的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))/*因宏名S是带参宏定义,所以参数必须加上,不能省写成sqrt(s*(S-a)*(S-b)*(S-c)),否则程序将无法通过编译并报错*/
void main()
{
int a,b,c;  /*a,b,c可定义为float型,但输入时就不能使用%d,而应该用%f*/
printf("Please input data a,b,c:");
scanf("%d%d%d",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a) /*一个常规(正常)三角形必须是任意两边之和大于第三边,否则此三角形不成立*/
printf("s=%.2f, area=%.2f/n",S(a,b,c),AREA(a,b,c));/*特别注意S和AREA宏定义中的形参不能省略*/
else printf("It is not triangle!/n");

 翻译 triangle:三角形   area:面积

一、高中求三角形面积通用的两个公式:
 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值