Twantifred @ 2024-03-10 23:24:39
#include <stdio.h>
#include <stdint.h>
#include <float.h>
#include <math.h>
#include <inttypes.h>
/* 给出平面坐标上不在一条直线上三个点坐标(x1,y1),(x2,y2),(x3,y3),
坐标值是实数,且绝对值不超过 100.00,求围成的三角形周长。保留两位小数。*/
/// @brief 计算两点之间的距离
/// @param ax
/// @param ay
/// @param bx
/// @param by
/// @return 两点之间距离
double distance(int32_t ax,int32_t ay,int32_t bx,int32_t by)
{
return (double)sqrt( pow(bx-ax,2) + pow(by-ay,2) ); //两点距离公式
}
int main(void)
{
int32_t x1,y1; //第一个点的坐标
int32_t x2,y2; //第二个点的坐标
int32_t x3,y3; //第三个点的坐标
scanf("%"PRId32 "%"PRId32, &x1, &y1); //输入第一个点的坐标
scanf("%"PRId32 "%"PRId32, &x2, &y2); //输入第二个点的坐标
scanf("%"PRId32 "%"PRId32, &x3, &y3); //输入第三个点的坐标
double perimeter = 0; //三角形周长
//计算三角形三边
perimeter += distance(x1,y1,x2,y2);
perimeter += distance(x2,y2,x3,y3);
perimeter += distance(x3,y3,x1,y1);
printf("%.2lf",perimeter); //输出三角形周长
return 0;
}
by love20110429 @ 2024-03-11 07:27:26
@Twantifred
#include <iostream>
#include <math.h>
using namespace std;
double dis(double a,double b,double c,double d){
double e=sqrt((c-a)*(c-a)+(d-b)*(d-b));
return e;
}
int main()
{
double a,b,c,d,e,f;
cin>>a>>b>>c>>d>>e>>f;
printf("%.2lf",dis(a,b,c,d)+dis(a,b,e,f)+dis(c,d,e,f));
return 0;
}