当前位置:网站首页>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,其小数点后的部分会被舍弃,若除数或被除数有浮点时,则商为浮点数。
边栏推荐
猜你喜欢
随机推荐
leetcode-搜索旋转排序数组-33
批量转换经纬度的网页实现方法
Create a table in a MySQL database through Doc
caffe ---make all editing error
多商户商城系统功能拆解26讲-平台端分销设置
2022年台湾省矢量数据(点线面)及数字高程数据下载
1007 Maximum Subsequence Sum (25分)
Missing URI template variable ‘employeeNumber‘ for method parameter of type String
caffe ---make all编辑出错
golang源代码阅读,sync系列-Pool
TensorFlow—计算梯度与控制梯度 : tf.gradients和compute_gradients和apply_gradients和clip_by_global_norm控制梯度
ThreadLocal及其内存泄露分析
tensorflow实现线性方程的参数调整
c语言函数的递归调用(汉诺塔问题,楼梯递归问题等)
山东招远通报星童幼儿园食品安全问题最新调查情况
focusablejs
golang interface “坑记录“
全网最简单解决OneNote中英字体不统一
Product Quantization (PQ)
Solve 1. tensorflow runs using CPU but not GPU 2. GPU version number in tensorflow environment 3. Correspondence between tensorflow and cuda and cudnn versions 4. Check cuda and cudnn versions