三角形の問題を分析3-5(15分)

座標(X 1、Y 1)任意の三点の平面上の、与えられた(X 2、Y 2)、(X 3、Y 3 )、彼らは三角形を形成することができるかどうか。

入力フォーマット:

6 [-100100]行の範囲で入力所定の順序番号、即ち、三点の座標X 1、Y 1、X 2、Y 2、X 3、Y 3。

出力フォーマット:

3点が行の出力「不可」次に、三角形を形成しない場合、可能な場合、行の三角形の周囲長と面積の出力は、「L =境界、A =領域」の形式は、小数点に出力されます。 2後。

サンプル入力1:

4 5 6 9 7 8

 

出力サンプル1:

L = 10.13, A = 3.00

 

サンプル入力2:

4 6 8 12 12 18

 

出力サンプル2:

Impossible

 回答:

#include<stdio.h>
#include<math.h>
int main(){
    double x1,y1,x2,y2,x3,y3,x,y,z;
    scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3);
    x=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
    y=sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2));
    z=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
    if(x+y<=z||x+z<=y||y+z<=x){
        printf("Impossible");
    }else{
        double L,A,p;
        p=(x+y+z)/2;
        A=sqrt(p*(p-x)*(p-y)*(p-z));
        L=x+y+z;
        printf("L = %.2lf, A = %.2lf",L,A);
    }
    return 0;
}

 

公開された98元の記事 ウォンの賞賛2 ビュー3737

おすすめ

転載: blog.csdn.net/qq_30377869/article/details/104753963