【if 语句】根据用户的输入 3 个顶点坐标计算三角形的面积和周长,如果
题目
【if 语句】根据用户的输入 3 个顶点坐标计算三角形的面积和周长,如果
不能构成三角形提示错误.
答案
#include <stdio.h>
#include <math.h>
//输入三个点
void inputThreePoint(double *p)
{
x09for(int i=0;i<6;i+=2)
x09{
x09x09printf("输入坐标点(x,y)%d: ",i+1);
x09x09scanf("%lf,%lf",p+i,p+i+1);
x09x09fflush(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{
x09x09return true;
x09}
x09else
x09{
x09x09return false;
x09}
}
void main()
{
x09double coordinate[6];
x09double sideLength[3];
x09inputThreePoint(coordinate);
x09getLength(coordinate,sideLength);
x09if(isAngel(sideLength)==false)
x09{
x09x09printf("输入的坐标不能构成三角形
");
x09}
x09else
x09{
x09x09printf("面积:%lf
",getArea(sideLength));
x09x09printf("周长:%lf
",getPerimeter(sideLength));
x09}
}
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
最新试题
热门考点