
输入三个坐标,判断是否构成三角形,若构成输出其面积,编写一C语言程序
4个回答
展开全部
#include<stdio.h>
#include<math.h>
int result(int x1,int x2,int y1,int y2)
{
int x,y,res;
if(x1>x2)
x=x1-x2;
else
x=x2-x1;
if(y1>y2)
y=y1-y2;
else
y=y2-y1;
res=sqrt(x*x+y*y);//求每条边的长度
return res;
}
void main()
{
int a1,a2,b1,b2,c1,c2; //a1,a2对应着横竖坐标 b1,b2,c1,c2也是一样
int a3,b3,c3;
float p,s;
scanf("d%,d%,d%,d%,d%,d%",&a1,&a2,&b1,&b2,&c1,&c2);
a3=result(a1,b1,a2,b2);//一条边的长度
b3=result(a1,c1,a2,c2);
c3=result(b1,c1,b2,c2);
if(((a1==b1)&&(b1==c1)) || ((a2==b2)&&(b2==c2))) //构成不了三角形
printf("c%","error");
else
{
p=(a3+b3+c3)/2;
s=sqrt(p*(p-a3)*(p-b3)*(p-c3)); //面积公式
printf("f%\n",s);
}
}
#include<math.h>
int result(int x1,int x2,int y1,int y2)
{
int x,y,res;
if(x1>x2)
x=x1-x2;
else
x=x2-x1;
if(y1>y2)
y=y1-y2;
else
y=y2-y1;
res=sqrt(x*x+y*y);//求每条边的长度
return res;
}
void main()
{
int a1,a2,b1,b2,c1,c2; //a1,a2对应着横竖坐标 b1,b2,c1,c2也是一样
int a3,b3,c3;
float p,s;
scanf("d%,d%,d%,d%,d%,d%",&a1,&a2,&b1,&b2,&c1,&c2);
a3=result(a1,b1,a2,b2);//一条边的长度
b3=result(a1,c1,a2,c2);
c3=result(b1,c1,b2,c2);
if(((a1==b1)&&(b1==c1)) || ((a2==b2)&&(b2==c2))) //构成不了三角形
printf("c%","error");
else
{
p=(a3+b3+c3)/2;
s=sqrt(p*(p-a3)*(p-b3)*(p-c3)); //面积公式
printf("f%\n",s);
}
}
展开全部
bool triangle_or_not=true;
double p1_x,p2_x,p3_x,p1_y,p2_y,p3_y;
cin>>p1_x>>p1_y;
cin>>p2_x>>p2_y;
cin>>p3_x>>p3_y;
double long12=sqrt((p1_x-p2_x)*(p1_x-p2_x)+(p1_y-p2_y)*(p1_y-p2_y));
double long13=sqrt((p1_x-p3_x)*(p1_x-p3_x)+(p1_y-p3_y)*(p1_y-p3_y));
double long32=sqrt((p3_x-p2_x)*(p3_x-p2_x)+(p3_y-p2_y)*(p3_y-p2_y));
//求出三点之间的距离
if(long12+long13==long32)
{
triangle_or_not=false;
}
if(long12+long32==long13)
{
triangle_or_not=false;
}
if(long32+long13==long12)
{
triangle_or_not=false;
}
//判断三点是否在同一直线上
if(triangle_or_not==true)
{
double a=long12;
double b=long13;
double c=long32;
double p=(a+b+c)/2;
double area=sqrt(p*(p-a)*(p-b)*(p-c));
cout<<"三角形面积为:"<<area<<endl;
}else{
cout<<"不构成三角形。"<<endl;
}
double p1_x,p2_x,p3_x,p1_y,p2_y,p3_y;
cin>>p1_x>>p1_y;
cin>>p2_x>>p2_y;
cin>>p3_x>>p3_y;
double long12=sqrt((p1_x-p2_x)*(p1_x-p2_x)+(p1_y-p2_y)*(p1_y-p2_y));
double long13=sqrt((p1_x-p3_x)*(p1_x-p3_x)+(p1_y-p3_y)*(p1_y-p3_y));
double long32=sqrt((p3_x-p2_x)*(p3_x-p2_x)+(p3_y-p2_y)*(p3_y-p2_y));
//求出三点之间的距离
if(long12+long13==long32)
{
triangle_or_not=false;
}
if(long12+long32==long13)
{
triangle_or_not=false;
}
if(long32+long13==long12)
{
triangle_or_not=false;
}
//判断三点是否在同一直线上
if(triangle_or_not==true)
{
double a=long12;
double b=long13;
double c=long32;
double p=(a+b+c)/2;
double area=sqrt(p*(p-a)*(p-b)*(p-c));
cout<<"三角形面积为:"<<area<<endl;
}else{
cout<<"不构成三角形。"<<endl;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
很简单 啊 只要证明三个坐标不在一条线上不就ok了
追问
这些我都知道,但是我要的是程序,C语言程序
追答
说的这么直白了 还写不出来程序 你是直接要代码的 我懒得写
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询