您的位置:首页 > 其它

数学积分求面积的 HDU1071The area

2013-07-04 13:06 218 查看
/*

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1071点击打开链接

题目大意:用积分求面积

心得:一些库函数里的东西时不能跟他们重名的,命名也很重要,x1,y1还有map这样的不能随意命名

*/

#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>       //没想到cmath中竟然定义的有x1,y1.直接编译都过不了
using namespace std;
double a,a1,b1;
double x11,y11,x22,y22,x33,y33;

double cal1(double x)        //计算抛物线的函数值
{
return a*(x-x11)*(x-x11)+y11;
}

double cal2(double x)         //计算直线的函数值
{
return a1*x+b1;
}

int main()
{
int T;
cin>>T;
while(T--)
{
scanf("%lf%lf%lf%lf%lf%lf",&x11,&y11,&x22,&y22,&x33,&y33);
if(x22>x33)
{
double p=x22; x22=x33; x33=p;
p=y22; y22=y33; y33=p;
}

a=(y22-y11)/((x22-x11)*(x22-x11));
a1=(y22-y33)/(x22-x33);
b1=(x33*y22-x22*y33)/(x33-x22);
double s=0;
double i;
for(i=x22;i<=x33;i+=0.00005)                //积分求出面积
s+=(fabs(cal1(i)-cal2(i)))*0.00005;
printf("%.2f\n",s);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: