题目描述
给出平面坐标上不在一条直线上三个点坐标 ,(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
_____________________________________________________________________________文章来源地址https://www.toymoban.com/news/detail-617052.html
呜呜呜这道题错的太狠了,改了半小时才发现是double文章来源:https://www.toymoban.com/news/detail-617052.html
做题不易,点个赞呗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
_____________________________________________________________________________
错误代码
#include <bits/stdc++.h>
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 <bits/stdc++.h>
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);
}
到了这里,关于距离函数(c++题解)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!