2014年辽宁省赛 distance

来源:互联网 发布:霁蓝花瓶民国淘宝 编辑:程序博客网 时间:2024/05/01 15:46
</pre><pre name="code" class="cpp">//Y=K*(X-X1)+Y1,的求解,考虑k=0时和k不存在时#include <iostream># include<cmath># include <stdio.h>using namespace std;int main(){    float x1,x2,y1,y2,x3,x4;    while(cin>>x1>>y1>>x2>>y2)    {         if(x1==x2||y1==y2)         {    printf("100.00\n");         }         else{        float k=(y2-y1)/(x2-x1);        float y3=k*(100-x1)+y1;        float y4=k*(0-x1)+y1;        if(y3>=100)        {            y3=100;            x3=(y3-y1)/k+x1;        }        else if(y3<=100&&y3>=0)        {            x3=100;            y3=k*(100-x1)+y1;        }        else        {            y3=0;            x3=(0-y1)/k+x1;        }        if(y4>=100)        {            y4=100;            x4=(100-y1)/k+x1;        }        else if(y4<=100&&y4>=0)        {            x4=0;            y4=k*(0-x1)+y1;        }        else{           y4=0;           x4=(0-y1)/k+x1;        }        float d=sqrt((x4-x3)*(x4-x3)+(y4-y3)*(y4-y3));  printf("%.2f\n",d);    }    }}


0 0
原创粉丝点击