C语言 给定平面上任意三个点的坐标(x1,y1)、(x2,y​2)、(x3,y​3)

给定平面上任意三个点的坐标(x1,y1)、(x2,y​2)、(x3,y​3),检验它们能否构成三角形。若这3个点不能构成三角形,则在一行中输出“I... 给定平面上任意三个点的坐标(x1,y1)、(x2,y​2)、(x3,y​3),检验它们能否构成三角形。
若这3个点不能构成三角形,则在一行中输出“Impossible”;若可以,则在一行中输出该三角形的周长和面积,格式为“L = 周长, A = 面积”,输出到小数点后2位。

我写的是
#include<stdio.h>
#include<math.h>
int main()
{
float x1,x2,x3,y1,y2,y3,L,A,a,b,c,s;
scanf ("%f %f %f %f %f %f",&x1,&y1,&x2,&y2,&x3,&y3);
a=sqrt(pow(x1-x2,2)+pow(y1-y2,2));
b=sqrt(pow(x1-x3,2)+pow(y1-y3,2));
c=sqrt(pow(x3-x2,2)+pow(y3-y2,2));
if(a+b<=c||a+c<=b||b+c<=a)
printf("Impossible\n");
else
{
s=0.5*(a+b+c);
A=s*(s-a)*(s-b)*(s-c);
A=sqrt(A);
L=2*s;
printf("L = %.2f; A = %.2f",L,A);
}
return 0;
}
自己测试结果是对的,但是在PTA上面错了,错误如图。
展开
 我来答
未知之地的人
2018-10-12
知道答主
回答量:1
采纳率:0%
帮助的人:823
展开全部
#include <stdio.h>
#include<math.h>
int main(void)
{
double a,b,c,L,s,p,x1,y1,x2,y2,x3,y3;
printf("坐标1:\n");
scanf("%lf%lf",&x1,&y1);
printf("坐标2:\n");
scanf("%lf%lf",&x2,&y2);
printf("坐标3:\n");
scanf("%lf%lf",&x3,&y3);
a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
b=sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3));
c=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
if(a+b>c&&a+c>b&&b+c>a){
L=(a+b+c);
p=(a+b+c)*0.5;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("L=%.2lfs=%.2lf\n",L,s);
}
else
printf("impossible");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
听不清啊
高粉答主

2017-11-17 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
答案要求:格式为“L = 周长, A = 面积”
而你的程序输出,中间是分号
printf("L = %.2f; A = %.2f",L,A);
还有,x1,y1,.....都应该是float
更多追问追答
追问
我用了float还是最后一个不过关
追答
你的程序为什么不复制代码,放上来呢?
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
卓虹英3a
2018-11-15
知道答主
回答量:1
采纳率:0%
帮助的人:811
展开全部
#include<stdio.h>
#include<math.h>
int main()
{
  float x1,x2,x3,y1,y2,y3,L,A,a,b,c,s;
  scanf("%f %f %f %f %f %f",&x1,&y1,&x2,&y2,&x3,&y3);
  a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
  b=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
  c=sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3));
  if(a+b<=c||a+c<=b||b+c<=a)
  printf("Impossible");
  else
{
  s=0.5*(a+b+c);
  A=s*(s-a)*(s-b)*(s-c);
  A=sqrt(A);
  L=2*s;
  printf("L = %.2f, A = %.2f",L,A);
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式