作业帮 > 综合 > 作业

【if 语句】根据用户的输入 3 个顶点坐标计算三角形的面积和周长,如果

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/15 01:33:57
【if 语句】根据用户的输入 3 个顶点坐标计算三角形的面积和周长,如果
不能构成三角形提示错误.
#include <stdio.h>
#include <math.h>

//输入三个点
void inputThreePoint(double *p)
{
\x09for(int i=0;i<6;i+=2)
\x09{
\x09\x09printf("输入坐标点(x,y)%d: ",i+1);
\x09\x09scanf("%lf,%lf",p+i,p+i+1);
\x09\x09fflush(stdin);
\x09}
}

//计算周长
double getPerimeter(double *p)
{
\x09double side_length_a=*p;
\x09double side_length_b=*(p+1);
\x09double  side_length_c=*(p+2);
\x09return side_length_a+side_length_b+side_length_c;
}

//计算面积
double getArea(double *p)
{
\x09double side_length_a=*p;
\x09double side_length_b=*(p+1);
\x09double side_length_c=*(p+2);
\x09double halfPerimeter=(side_length_a+side_length_b+side_length_c)/2;
\x09return sqrt(halfPerimeter*(halfPerimeter-side_length_a)*(halfPerimeter-side_length_b)*(halfPerimeter-side_length_c));
}

//根据坐标点求长度
void getLength(double *point,double *angelLength)
{
\x09double x1=*point;
\x09double y1=*(point+1);
\x09double x2=*(point+2);
\x09double y2=*(point+3);
\x09double x3=*(point+4);
\x09double y3=*(point+5);

\x09*angelLength=sqrt(pow((x1-x2),2)+pow((y1-y2),2));
\x09*(angelLength+1)=sqrt(pow((x3-x2),2)+pow((y3-y2),2));
\x09*(angelLength+2)=sqrt(pow((x3-x1),2)+pow((y3-y1),2));
}

//判断能否构成三角形
bool isAngel(double *p)
{
\x09double side_length_a=*p;
\x09double side_length_b=*(p+1);
\x09double side_length_c=*(p+2);
\x09
\x09if(side_length_a+side_length_b>side_length_c
\x09&& side_length_a+side_length_c>side_length_b
\x09&& side_length_c+side_length_b>side_length_a)
\x09{
\x09\x09return true;
\x09}
\x09else
\x09{
\x09\x09return false;
\x09}
}

void main()
{
\x09double coordinate[6];
\x09double sideLength[3];

\x09inputThreePoint(coordinate);
\x09getLength(coordinate,sideLength);
\x09if(isAngel(sideLength)==false)
\x09{
\x09\x09printf("输入的坐标不能构成三角形\n");
\x09}
\x09else
\x09{
\x09\x09printf("面积:%lf\n",getArea(sideLength));
\x09\x09printf("周长:%lf\n",getPerimeter(sideLength));
\x09}
}