C语言80分救助!!

P5735 【深基7.例1】距离函数

Twantifred @ 2024-03-10 23:24:39

5 WA,代码如下,求大佬指点

#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;
}

|