给定平面上任意三个点的坐标(x1​,y1​)、(x2​,y2​)、(x3​,y3​),检验它们能否构成三角形。

输入格式:

输入在一行中顺序给出六个[−100,100]范围内的数字,即三个点的坐标x1​、y1​、x2​、y2​、x3​、y3​。

输出格式:

若这3个点不能构成三角形,则在一行中输出“Impossible”;若可以,则在一行中输出该三角形的周长和面积,格式为“L = 周长, A = 面积”,输出到小数点后2位。

输入样例1:

4 5 6 9 7 8

结尾无空行

输出样例1:

L = 10.13, A = 3.00

结尾无空行

输入样例2:

4 6 8 12 12 18

输出样例2:

Impossible

注意点:这里需要一些数学知识, 判断能否构成三角形的条件是:任意两边之和大于第三边

求面积的话用海伦公式: 

假设在平面内,有一个三角形,边长分别为a、b、c,三角形的面积S可由以下公式求得:

而公式里的p为半周长(周长的一半):

这里还有另外一种有三个坐标后可以求三角形面积的方法:

S=(1/2)*(x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2)。 

但是这种方法答案虽然正确,但是在PTA上通过不了,不知道为什么!~

#include<stdio.h>
#include<math.h>
double length(double x1, double y1, double x2, double y2);
int main()
{double x1 = 0.0, x2 = 0.0, x3 = 0.0,y1 = 0.0, y2 = 0.0, y3 = 0.0;double length1 = 0.0, length2 = 0.0, length3 = 0.0;double L = 0.0, A = 0.0;double p=0.0;scanf("%lf %lf %lf %lf %lf %lf", &x1, &y1, &x2, &y2, &x3, &y3);length1 = length(x1, y1, x2, y2);length2 = length(x2, y2, x3, y3);length3 = length(x1, y1, x3, y3);L = length1 + length2 + length3;p = L / 2;A = sqrt(p * (p - length1) * (p - length2) * (p - length3));if (length1 + length2 > length3 && length1 + length3 > length2 && length2 + length3 > length1){printf("L = %.2f, A = %.2f", L, A);}else{printf("Impossible");}return 0;
}double length(double x1, double y1, double x2, double y2)
{return sqrt(pow((x2 - x1), 2) + pow((y2 - y1), 2));
}

习题3-5 三角形判断 (15 分)-PTA浙大版《C语言程序设计(第4版)》相关推荐

  1. 7-74 三角形判断 (15 分) 给定平面上任意三个点的坐标(x1,​​ y1)、(x2,​​ y2)、(x3,​​ y3),检验它们能否构成三角形。PTA:中M2021春C、Java入门练习第I段

    7-74 三角形判断 (15 分) 给定平面上任意三个点的坐标(x1,​​ y1).(x2,​​ y2).(x3,​​ y3),检验它们能否构成三角形. 输入格式: 输入在一行中顺序给出六个[−100 ...

  2. PTA 习题3-5 三角形判断 (15分)

    给定平面上任意三个点的坐标(x​1​​ ,y​1​​ ).(x​2​​ ,y​2​​ ).(x​3​​ ,y​3​​ ),检验它们能否构成三角形. 输入格式: 输入在一行中顺序给出六个[−100,10 ...

  3. 习题3-5 三角形判断 (15 分)

    任意两边之和大于第三边就可以构成三角形: 面积计算:计算出余弦:cos=(a* a+b* b-c* c)/(2* a* b),正弦sin=sqrt(1-cos *cos);A=1/2 *a *b *s ...

  4. 习题4-9 打印菱形图案 (15 分)

    习题4-9 打印菱形图案 (15 分) 本题要求编写程序,打印一个高度为n的.由"*"组成的正菱形图案. 输入格式: 输入在一行中给出一个正的奇数n. 输出格式: 输出由n行星号& ...

  5. 1.4编程基础之逻辑表达式与条件分支_16三角形判断(9分)

    /* 1.4编程基础之逻辑表达式与条件分支_16三角形判断(9分)  http://noi.openjudge.cn/ch0104/16/ */ #include <bits/stdc++.h& ...

  6. 习题2.7 弹球距离 (15 分)

    习题2.7 弹球距离 (15 分) 设有一个球从高度为h米的地方落下,碰到地面后又弹到高度为原来p倍的位置,然后又落下,再弹起,再落下-.请编写函数求初始高度为h的球下落后到基本停下来(高度小于给定阈 ...

  7. 习题2.7 弹球距离 (15分) 浙江大学数据结构

    习题2.7 弹球距离 (15分) 设有一个球从高度为h米的地方落下,碰到地面后又弹到高度为原来p倍的位置,然后又落下,再弹起,再落下-.请编写函数求初始高度为h的球下落后到基本停下来(高度小于给定阈值 ...

  8. C语言程序设计第五版 谭浩强 第四章 课后习题 答案

    谭浩强C语言程序设计第五版 第4章 课后习题 答案 点我看视频讲解+可运行源码 记得一键三连哦 第四章 选择结构程序设计 1. 什么是算术运算?什么是关系运算?什么是逻辑运算? [答案解析] 算熟运算 ...

  9. java第二版课后题答案_Java语言程序设计第2版第16章 课后习题答案

    <Java语言程序设计第2版第16章 课后习题答案>由会员分享,可在线阅读,更多相关<Java语言程序设计第2版第16章 课后习题答案(62页珍藏版)>请在人人文库网上搜索. ...

最新文章

  1. 大陆唯一7nm光刻机被抵押!武汉千亿投资、台积电大牛掌舵的芯片项目官宣停摆...
  2. golang 获取路径 文件名 后缀
  3. 读书笔记《如何阅读一本书》之二
  4. 别人家的孩子!高校博士实现Nature、Science双发!
  5. boost::type_erasure::binding相关的测试程序
  6. ctr 平滑_CTR平滑的原理,包懂!!!附代码
  7. Hadoop的伪分布安装 hadoop的核心思想
  8. 选择省份时,自动显示对应省份的城市
  9. linux循环控制结构,Linux Shell 之 Shell 基本控制结构(二)(循环结构)
  10. 不可能解开的谜题   (程序员修炼之道,评注者序)
  11. telnet批量ip端口测试连通自动脚本
  12. 功能测试用例设计方法,一文带你了解用例设计,再也不担心用例了
  13. NCA:九岁的已经发起了 DDoS 攻击
  14. 扫呗、通联微信后台配置支付授权目录流程
  15. 51单片机 WR RD的作用
  16. 企微裂变定位裂变,实现粉丝增长,提高客户留存率。
  17. XTDorne平台搭建无人机仿真环境时遇到的问题及解决
  18. 二叉树高度 [log2n]+1与log2(n+1)是否相等
  19. 用git clone命令从gitlab上拉取公司项目操作步骤
  20. 11. 合伙创业企业的股份计算解决办法

热门文章

  1. ThinkPad X250加装固态硬盘教程
  2. android自定义抽奖,Android简单实现圆盘抽奖界面
  3. android设计模式应用--中介者模式
  4. 初中计算机教案模板,初中计算机教案模板
  5. git fatal: schannel: next InitializeSecurityContext failed: SEC E CERT EXPIRED (0x80090328)
  6. 185 道必须掌握的大数据面试真题(附答案)
  7. Raft一致性算法论文
  8. 移动编程基础知识(复习提纲)
  9. 建模练习——扇贝单词
  10. JavaWeb+MySql+Tomcat一键部署方案