給定平面上任意三個點的坐標(x
?1
?? ,y
?1
?? )、(x
?2
?? ,y
?2
?? )、(x
?3
?? ,y
?3
?? ),檢驗它們能否構成三角形。
輸入格式:
輸入在一行中順序給出六個[?100,100]范圍內的數字,即三個點的坐標
x
?1
?? 、y
?1
?? 、x
?2
?? 、y
?2
?? 、x
?3
?? 、y
?3
?? 。
輸出格式:
若這3個點不能構成三角形,則在一行中輸出“Impossible”;若可以,則在一行中輸出該三角形的周長和面積,格式為“L = 周長, A = 面積”,輸出到小數點后2位。
輸入樣例1:
4 5 6 9 7 8
輸出樣例1:
L = 10.13, A = 3.00
我的
#include"stdio.h"
#include"math.h"
int main()
{
float a,b,c,d,e,f,g,h,i,j,k;
double x=2;
scanf("%f%f%f%f%f%f",&a,&b,&c,&d,&e,&f);
g=sqrt((double)(pow((double)(a-c),x)+pow((double)(b-d),x)));
h=sqrt((double)(pow((double)(c-e),x)+pow((double)(d-f),x)));
i=sqrt((double)(pow((double)(a-e),x)+pow((double)(b-f),x)));
if(g+h>i&&g-h<i&&g+i>h&&g-i<h&&h+i>g&&h-i<g&&h-g<i&&i-g<h&&i-h<g)
{j=g+h+i;
k=j/2;
k=sqrt((double)(k*(k-g)*(k-i)*(k-h)));
}
else {
printf("impossible\n");
return 0;
}
printf("L = %.2f, A = %.2f\n",j,k);
}
為何在pta提交顯示答案錯誤?
uj5u.com熱心網友回復:
修改如下:int main()
{
float a,b,c,d,e,f,g,h,i,j,k;
double x=2;
scanf("%f%f%f%f%f%f",&a,&b,&c,&d,&e,&f);
g=sqrt((double)(pow((double)(a-c),x)+pow((double)(b-d),x)));
h=sqrt((double)(pow((double)(c-e),x)+pow((double)(d-f),x)));
i=sqrt((double)(pow((double)(a-e),x)+pow((double)(b-f),x)));
if(g+h>i&&g-h<i&&g+i>h&&g-i<h&&h+i>g&&h-i<g&&h-g<i&&i-g<h&&i-h<g)
{j=g+h+i;
k=j/2;
k=sqrt((double)(k*(k-g)*(k-i)*(k-h)));
printf("L = %.2f, A = %.2f\n",j,k); //列印輸出應該放在這里
}
else {
printf("impossible\n");
//return 0; 這句多余的
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/216417.html
標籤:新手樂園
上一篇:計算輸入的字串的字符個數。
