C语言80分救助!!
查看原帖
C语言80分救助!!
1055665
Twantifred楼主2024/3/10 23:24

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


2024/3/10 23:24
加载中...