当前位置:网站首页>PTA习题 三角形判断
PTA习题 三角形判断
2022-08-09 10:58:00 【拾荒大妈】
给定平面上任意三个点的坐标(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,然后利用公式L=a+b+c,S=sqrt(p(p-a)(p-b)(p-c))(p=L/2)计算出周长和面积。
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
double x1,y1,x2,y2,x3,y3;
double l;
double s;
double p;
double a,b,c;
scanf("%lf %lf %lf %lf %lf %lf",&x1,&y1,&x2,&y2,&x3,&y3);
a=sqrt(pow((x2-x1),2)+pow((y2-y1),2));
b=sqrt(pow((x3-x1),2)+pow((y3-y1),2));
c=sqrt(pow((x2-x3),2)+pow((y2-y3),2));
if((y2-y1)/(x2-x1)==(y3-y1)/(x3-x1))
printf("Impossible");
else
{
l=a+b+c;
p=l/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("L = %.2lf, A = %.2lf",l,s);
}
return 0;
}
做题时遇到的问题:
需注意变量的数值类型,c语言中的除法,若除数与被除数都是int,则商也是int,其小数点后的部分会被舍弃,若除数或被除数有浮点时,则商为浮点数。
边栏推荐
猜你喜欢

Jmeter BeanShell post processor

【VIBE: Video Inference for Human Body Pose and Shape Estimation】论文阅读

C语言统计不同单词数

Qt获取EXE可执行文件的上一级目录下的文件
![[Original] Usage of @PrePersist and @PreUpdate in JPA](/img/a0/5aebdef4a12fe55b4782b69e39b817.png)
[Original] Usage of @PrePersist and @PreUpdate in JPA

在webgis中显示矢量化后的风险防控信息

彻底理解工厂模式

多商户商城系统功能拆解26讲-平台端分销设置

MNIST机器学习入门

Preparation for gold three silver four: how to successfully get an Ali offer (experience + interview questions + how to prepare)
随机推荐
faster-rcnn中的RPN原理
electron 应用开发优秀实践
Since I use the HiFlow scene connector, I don't have to worry about becoming a "dropper" anymore
Preparation for gold three silver four: how to successfully get an Ali offer (experience + interview questions + how to prepare)
【VIBE: Video Inference for Human Body Pose and Shape Estimation】论文阅读
golang runtime Caller、Callers、CallersFrames、FuncForPC、Stack作用
备份mongodb数据库(认证)
爬虫实例,获取豆瓣上某部电影的评论
MDK添加注释模板
Create a table in a MySQL database through Doc
信息系统项目的十大管理
golang源代码阅读,sync系列-Cond
微信小程序——天气查询
乘积量化(PQ)
二叉树 前序是根在前(根左右)中序(左根右)
FreeRTOS任务创建源码分析
Quartz的理解
Unix Environment Programming Chapter 15 15.7 Message Queuing
c语言函数的递归调用(汉诺塔问题,楼梯递归问题等)
sublime记录