代码
#include<stdio.h>
#include<math.h>
int main(){
int N=0,i;
float x[3]={},y[3]={},sum=0;
scanf("%d",&N);
for(i=0;i<N;i++){
scanf("%f%f",&x[i],&y[i]);
}
for(i=0;i<N;i++){
if(i==N-1){
sum+=sqrt(pow((x[i]-x[0]),2.0)+pow((y[i]-y[0]),2.0));
break;
}
sum+=sqrt(pow((x[i]-x[i+1]),2.0)+pow((y[i]-y[i+1]),2.0));
}
sum=(int)((sum+0.005)*100)/100.00;
printf("%g",sum);
return 0;
}
友情提示
1、数学公式(两点之间距离公式):d=√[(x1-x2)²+(y1-y2)²]
2、省略掉小数位最后不必要的占位0:先将sum+0.005进行四舍五入,然后*100进行强制转化成整型,程序自动取整,最后再/100.00转化回浮点型。这些做法相当于是将sum四舍五入式保留两位小数,最后以%g的格式输出,会自动省略掉不必要的占位0(e.g. 48.80029485=>48.8)
题目描述
一个二维地图上,有一个三角形岛屿,你正在沿着岛屿的海岸线行走,现在给你岛屿三个角的坐标,要你计算岛屿海岸线的长度。
编写一个函数,以二维矩阵的形式获取三个点的坐标并返回岛屿海岸线的长度。给定的点是二维平面上岛屿的顶点。
输入输出格式
输入格式 数字 N
表示的是矩阵的行数。 输入 3
行整数,表示为岛屿的每一个角的坐标,每个整数用一个空格隔开。
输出格式 输出一个浮点数,表示岛屿海岸线的长度。
输入输出样例1
输入 在周长的函数中输入 3
"15" "7"
"5" "22"
"11" "1"
输出 47.08
输入输出样例2
输入 3
0 0
0 1
1 0
输出 3.41
输入输出样例3
输入 3
-10 -10
10 10
-10 10
输出 68.28
说明提示
传入的值可以是整数,负整数,小数,和负小数。