给出平面坐标上不在一条直线上三个点坐标 ,(x1,y1),(x2,y2),(x3,y3),坐标值是实数,且绝对值不超过 100.00,求围成的三角形周长。保留两位小数。
对于平面上的两个点 (x1,y1),(x2,y2),则这两个点之间的距离dis=(x2−x1)2+(y2−y1)2
输入三行,第 ii 行表示坐标 (xi,yi),以一个空格隔开。
输出一个两位小数,表示由这三个坐标围成的三角形的周长。
输入 #1复制
0 0 0 3 4 0
输出 #1复制
12.00
_____________________________________________________________________________
呜呜呜这道题错的太狠了,改了半小时才发现是double
_____________________________________________________________________________
#include
using namespace std;
double ans,x,y,z;
double n[100005],m[100005];
int node(double a,double b,double c,double d){
return sqrt(abs((c-a)*(c-a))+abs((d-b)*(d-b)));
}
int main(){
for(int i=1;i<=3;i++)cin>>n[i]>>m[i];
x=node(n[1],m[1],n[2],m[2]);
y=node(n[1],m[1],n[3],m[3]);
z=node(n[2],m[2],n[3],m[3]);
ans=x+y+z;
printf("%.2f",ans);
}
#include
using namespace std;
double ans,x,y,z;
double n[100005],m[100005];
double node(double a,double b,double c,double d){呜呜呜就是因为这个函数的定义定成了int全错
return sqrt(abs((c-a)*(c-a))+abs((d-b)*(d-b)));
}
int main(){
for(int i=1;i<=3;i++)cin>>n[i]>>m[i];
x=node(n[1],m[1],n[2],m[2]);
y=node(n[1],m[1],n[3],m[3]);
z=node(n[2],m[2],n[3],m[3]);
ans=x+y+z;
printf("%.2f",ans);
}