题目描述
给出平面坐标上不在一条直线上三个点坐标 (x_1,y_1),(x_2,y_2),(x_3,y_3)(x1,y1),(x2,y2),(x3,y3),坐标值是实数,且的绝对值不超过 100.00,求围成的三角形周长。保留两位小数。
对于平面上的两个点 (x_1,y_1),(x_2,y_2)(x1,y1),(x2,y2),则这两个点之间的距离 dis=\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}dis=(x2−x1)2+(y2−y1)2
输入格式
无
输出格式
无
输入输出样例
输入 #1复制
0 0 0 3 4 0
输出 #1复制
12.00
数组形式:
#include<stdio.h>
#include<math.h>
int main()
{
double a[3][2];
int i,j;
for(i=0;i<3;i++){
for(j=0;j<2;j++){
scanf("%lf",&a[i][j]);
}
}
double sum=0;
for(i=0;i<3;i++){
if(i<2){
sum+=sqrt(pow(a[i][0]-a[i+1][0],2)+pow(a[i][1]-a[i+1][1],2));
//sum+=sqrt(((a[i][0]-a[i+1][0])*(a[i][0]-a[i+1][0]))+((a[i][1]-a[i+1][1])*(a[i][1]-a[i+1][1])));
}
else{
sum+=sqrt(pow(a[i][0]-a[0][0],2)+pow(a[i][1]-a[0][1],2));
//sum+=sqrt(((a[i][0]-a[i+1][0])*(a[i][0]-a[i+1][0]))+((a[i][1]-a[i+1][1])*(a[i][1]-a[i+1][1])));
}
}
printf("%.2lf",sum);
return 0;
}
#include<stdio.h>
#include<math.h>
int main()
{
double a[3][2];
int i,j;
for(i=0;i<3;i++){
for(j=0;j<2;j++){
scanf("%lf",&a[i][j]);
}
}
double sum=0;
for(i=0;i<3;i++){
if(i<2){
sum+=sqrt(((a[i][0]-a[i+1][0])*(a[i][0]-a[i+1][0]))+((a[i][1]-a[i+1][1])*(a[i][1]-a[i+1][1])));
}
else{
sum+=sqrt(((a[i][0]-a[0][0])*(a[i][0]-a[0][0]))+((a[i][1]-a[0][1])*(a[i][1]-a[0][1])));
}
}
printf("%.2lf",sum);
return 0;
}
函数形式:
#include<stdio.h>
#include<math.h>
double dis(double x1,double y1,double x2,double y2)
{
return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
int main()
{
double a,b,c,d,e,f;
scanf("%lf%lf%lf%lf%lf%lf",&a,&b,&c,&d,&e,&f);
double x,y,z,sum=0;
x=dis(a,b,c,d);
y=dis(a,b,e,f);
z=dis(c,d,e,f);
sum=x+y+z;
printf("%.2lf",sum);
return 0;
}