#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:面积
一、高中求三角形面积通用的两个公式: