⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2208.txt

📁 北大ACM题目例程 详细的解答过程 程序实现 算法分析
💻 TXT
字号:

#include"stdio.h"
#include"math.h"


double area( double l1, double l2, double l3 )
{
	double p = ( l1 + l2 + l3 ) / 2;
	return sqrt( p * (p-l1) * (p-l2) * (p-l3) );
}

double sq( double a )
{
	return a * a;
}

int main()
{
	double ab,ad,ac,bc,bd,cd,ah,dh,af,sabc,sbcd, hi, v, bh1, bh2;
	scanf( "%lf %lf %lf %lf %lf %lf", &ab, &ac, &ad, &bc, &bd, &cd );
	
	sabc = area( ab, bc, ac );
	sbcd = area( bc, cd, bd );
	
	ah = sabc * 2 / bc;
	dh = sbcd * 2 / bc;


	bh1 = sqrt( bd*bd - dh*dh );
	if( cd*cd > bd*bd + bc*bc ) bh1 = -bh1;

	bh2 = sqrt( ab*ab - ah*ah );
	if( ac*ac > ab*ab + bc*bc ) bh2 = -bh2;
	
	af = sqrt( ad*ad - sq( bh1 - bh2 ) );
	hi = area( af, dh, ah ) * 2 / ah;
	v = sabc * hi / 3;

	printf( "%.4lf\n", v );

	return 0;
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -