给定平面上任意三个点的坐标,检验它们能否构成三角形。
习题3-5 三角形判断 (15分)
给定平面上任意三个点的坐标,检验它们能否构成三角形。
输入格式:
输入在一行中顺序给出六个[−100,100]范围内的数字
输出格式:
若这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
一、斜率
#include<stdio.h>
#include<math.h>
int main(void)
{double x1,y1,x2,y2,x3,y3;double k1,k2,k3;double L,A;scanf("%lf %lf %lf %lf %lf %lf",&x1,&y1,&x2,&y2,&x3,&y3);if(y1==y2==y3){ //在同一直线上(平行x轴) printf("Impossible"); }if(y1==y2||y1==y3||y2==y3){ //一条边平行x轴,一定为三角形 L=sqrt(pow((x1-x2),2)+pow((y1-y2),2))+sqrt(pow((x2-x3),2)+pow((y2-y3),2))+sqrt(pow((x1-x3),2)+pow((y1-y3),2));A=fabs(0.5*(x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2));printf("L = %.2f, A = %.2f",L,A);}if(y1-y2!=0&&y1-y3!=0&&y2-y3!=0){ //均不平行x轴,判断斜率 k1=(x1-x2)/(y1-y2);k2=(x1-x3)/(y1-y3);k3=(x2-x3)/(y2-y3); if(k1!=k2&&k1!=k3&&k2!=k3){ //斜率各不相等L=sqrt(pow((x1-x2),2)+pow((y1-y2),2))+sqrt(pow((x2-x3),2)+pow((y2-y3),2))+sqrt(pow((x1-x3),2)+pow((y1-y3),2));A=fabs(0.5*(x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2));printf("L = %.2f, A = %.2f",L,A);}elseprintf("Impossible");} return 0;
}
有bug,未通过测试
- fabs():绝对值函数(浮点)
- abs():绝对值函数(整型)
- sqrt():平方根函数
- pow(底数,指数):幂函数
二、直接用线段长短判断
#include<stdio.h>
#include<math.h>
int main(void)
{double x1,y1,x2,y2,x3,y3;double l1,l2,l3;double L,A;scanf("%lf %lf %lf %lf %lf %lf",&x1,&y1,&x2,&y2,&x3,&y3);l1=sqrt(pow((x1-x2),2)+pow((y1-y2),2));l2=sqrt(pow((x2-x3),2)+pow((y2-y3),2));l3=sqrt(pow((x1-x3),2)+pow((y1-y3),2));if(l1+l2>l3&&l1+l3>l2&&l2+l3>l1){L=l1+l2+l3;float p=L/2.0;A=sqrt(p*(p-l1)*(p-l2)*(p-l3));printf("L = %.2f, A = %.2f",L,A);}elseprintf("Impossible");return 0;
}
- 注意:题中输入可能是非整数(第三个测试点),不能用int类型
给定平面上任意三个点的坐标,检验它们能否构成三角形。相关推荐
- 给定平面上任意三个点的坐标(x1,y1)、(x2,y2)、(x3,y3),检验它们能否构成三角形
1.题目来源 作者: 杨起帆 单位: 浙江大学 时间限制: 200 ms 内存限制: 64 MB 代码长度限制: 16 KB 2.题目简述 给定平面上任意三个点的坐标(x1,y1).(x ...
- 给定平面上任意三个点的坐标(x1,y1)、(x2 ,y2)、(x3 ,y3),检验它们能否构成三角形
给定平面上任意三个点的坐标(x1,y1).(x2 ,y2).(x3 ,y3),检验它们能否构成三角形. 输入:在一行中顺序给出六个[−100,100]范围内的数字,即三个点 ...
- 给定平面上任意三个点的坐标(x1,y1)、(x2,y2)、(x3,y3),检验它们能否构成三角形。
给定平面上任意三个点的坐标(x1,y1).(x2,y2).(x3,y3),检验它们能否构成三角形. 输入格式: 输入在一行中顺序给出六个[−100,100]范围内的数字,即三个点的坐标x1 ...
- 7-74 三角形判断 (15 分) 给定平面上任意三个点的坐标(x1, y1)、(x2, y2)、(x3, y3),检验它们能否构成三角形。PTA:中M2021春C、Java入门练习第I段
7-74 三角形判断 (15 分) 给定平面上任意三个点的坐标(x1, y1).(x2, y2).(x3, y3),检验它们能否构成三角形. 输入格式: 输入在一行中顺序给出六个[−100 ...
- c语言任意输入两点坐标,c语言题目急急急!给定平面任意两点的坐标(x1,y1)和(x2,? 爱问知识人...
[问题描述]给定平面任意两点的坐标(x1,y1)和(x2,y2),求这两点之间的距离(保留两位小数).要求求距离的运算单独放在一个函数中,然后在main函数中调用. [输入形式]输入两点的坐标(x1, ...
- c语言平曲线坐标,问题描述】给定平面任意两点的坐标(x1,y1)和(x2,y2),求这两点之间的距离(保留两位小数)。...
问题描述]给定平面任意两点的坐标(x1,y1)和(x2,y2),求这两点之间的距离(保留两位小数).要求求距离的运算单独放在一个函数中,然后在main函数中调用..[输入形式]输入两点的坐标(x1,y ...
- 本题要求实现一个函数,对给定平面任意两点坐标(x1,y1)和(x2,y2),求这两点之间的距离。
本题要求实现一个函数,对给定平面任意两点坐标(x1,y1)和(x2,y2),求这两点之间的距离. 函数接口定义: double dist( double x1, double y1, doub ...
- 本题要求实现一个函数,对给定平面任意两点坐标(x 1 ,y 1 )和(x 2 ,y 2 ),求这两点之间的距离。
函数接口定义: double dist( double x1, double y1, double x2, double y2 ); 其中用户传入的参数为平面上两个点的坐标(x1, y1)和(x2, ...
- 已知法向量 求投影_已知一点坐标和平面方程,求此点在平面上的投影点的坐标。...
展开全部 平面Ax+By+cZ+D=0的法向量为n=(A,B,C),M点在平面上的投影M'的坐标e69da5e887aa3231313335323631343130323136353331333431 ...
- c++ 圆上任意点坐标计算_已知圆上任意三点坐标如何编程来计算这个圆的圆心和半径...
在过去的一周时间里一直在计算师兄交代的任务 ,啥都没学,就一直在干这活.其中呢,我想的一个算法中就用到了本文中的这个小知识(主要就是线性代数和高中的一些知识结合起来).师兄说做的这个东西的内容要保密, ...
最新文章
- 精彩回顾|《图像对齐算法》
- 2020年投入200000000美元,华为不只挖掘年薪百万的“天才少年”
- python3.8.5安装-centos7 编译安装python3.8.5
- 病毒式营销案例:多芬让“病毒”的诱惑自发传递
- The Digits String
- 电脑桌面便签_电脑桌面定时提醒记事本便签软件
- dataframe 一列的不同值_pandas | 详解DataFrame中的apply与applymap方法
- GitHub进一步了解
- rust投递箱连接箱子_一种用于防盗的牛奶投递箱的制作方法
- 当最有创意的开发者遇上移动云,谁将成为创新之王?
- VB中输入函数InputBox的用法
- paip.TechExcel DevSuite IIS 应用配置
- 欧姆龙PLC 通过CJ1W-EIP21实现在线编程
- folder汇总字段的实现
- win10家庭版系统 修改docker为国内镜像
- 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 Part 3
- vue使用xe-utils通用函数库
- 湖中剑 前端周刊 #13 | Web录屏、Bundleless、低代码 Deco、Bundle Scanner、RN 低功耗蓝牙
- 成为合格插画设计师的要点
- 做个成功的嵌入式系统工程师