游客 Signup | Login
中文 | En

1229 - C语言9.3

给定三角形的面积公式为:

其中<img src="http://tk.hustoj.com:80/upload/pimg1267_2.gif" width="108" height="44" align="middle" alt="" />。a、b、c为三角形的三边。要求通过定义两个带参数的宏,一个用来求s,另一个用来求area,完成三角形的面积计算。

Input

三个用空格隔开的正整数,分别表示三角形的a、b、c三边。输入保证三角形不退化。

Output

三角形的面积,小数点后保留3位小数。

请注意行尾输出换行。

Examples

Input

10 7 8

Output

27.811

Solution C

#include <stdio.h>
#include <math.h>
int main()
{
	int a,b,c;
	double area,p;
	scanf("%d %d %d",&a,&b,&c);
    p=(a+b+c)/2.0;
	if((a+b>c)&&(a+c>b)&&(b+c>a))
	{area=sqrt(p*(p-a)*(p-b)*(p-c));
	printf("%.3f",area);}
	printf("\n");
	return 0;
}

Solution C++

#include <stdio.h>
#include <math.h>
#define calcS(a, b, c) (0.5 * ((a) + (b) + (c)))
#define calcArea(a, b, c) \
	(sqrt(calcS(a, b, c) * \
	(calcS(a, b, c) - (a)) * \
	(calcS(a, b, c) - (b)) * \
	(calcS(a, b, c) - (c))))
int main() {
	int a, b, c;
	scanf("%d%d%d", &a, &b, &c);
	printf("%.3f\n", calcArea(a, b, c));
	return 0;
}

Time Limit 1 second
Memory Limit 32 MB
Discuss Stats
上一题 下一题