任意给出3点坐标(平面),判断是否构成直角三角形。
我的想法:首先计算出三条边的长度,再判断是否满足三角形要求,若满足再判断是否是直角三角形
主要问题:在计算各边长时,必然要开方,导致不精确,这会导致判断是否为直角三角形时出错。
我的解决办法:在判断是否直角三角形是并不一定需要每条边的长度,知道其平方也可以,于是在计算没边长度的时候不开方就能解决直角判断问题。
还有的问题:但是仍然要先判断其是否是三角形,此时就需要每条边的具体长度,虽然此时对精度要求不是很高,但当遇到一些特意设计的数据时可能会处错误。鉴于此,鄙人特拿来与诸兄研究研究。

以下是我设计的代码,供大家参考,其中fun0()负责计算每边长度的平方,fun1()负责判断是否为三角形,fun2()负责判断是否为直角三角形。

#include"stdio.h"
#include"math.h"double fun0(double x1,double y1,double x2,double y2);
int fun1(double a,double b,double c);
int fun2(double a,double b,double c);int main()
{double a[3][2],x,y,z;int i,j;for(i=0,j=0;i<3;i++)for(j=0;j<1;j++)scanf("%lf%lf",&a[j],&a[j+1]);x=fun0(a[0][0],a[1][0],a[0][1],a[1][1]);y=fun0(a[0][0],a[2][0],a[0][1],a[2][1]);z=fun0(a[1][0],a[2][0],a[1][1],a[2][1]);
//        printf("%.2lf %.2lf %.2lf\n",x,y,z);if(fun1(x,y,z))if(fun2(x,y,z))printf("%d\n",1);elseprintf("%d\n",0);elseprintf("%d\n",0);}
//计算两点距离
double fun0(double x1,double y1,double x2,double y2)
{//返回每条边的平方(开方会有误差)return (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2);
}
//判断是否三角
int fun1(double a,double b,double c)
{//有误差没关系,但还是需要改进a=sqrt(a);b=sqrt(b);c=sqrt(c);if(a+b>c&&a+c>b&&b+c>a&&a-b<c&&b-a<c&&a-c<b&&c-a<b&&b-c<a&&c-b<a)return 1;elsereturn 0;
}
//判断是否直角
int fun2(double a,double b,double c)
{if(a+b==c || a+c==b || b+c==a)return 1;elsereturn 0;
}

判断是否是直角三角形的算法研究相关推荐

  1. 程序员面试、算法研究、编程艺术、红黑树、机器学习5大系列集锦

    (七月在线:https://www.julyedu.com/,面试 & 算法 & 机器学习在线课程) 作者:July--结构之法算法之道blog之博主. 时间:2010年10月-201 ...

  2. 关于二维码分块上色(彩色二维码)的算法研究

    原文:关于二维码分块上色(彩色二维码)的算法研究 众所周知,二维码通常是黑白的,而且是由若干个长方形或正方形小块平铺而成.但从人们的审美角度来看,常见的黑白二维码不免让人审美疲劳.本文试着从分块上色的 ...

  3. 遗传算法经典实例代码_经典算法研究系列 之 深入浅出遗传算法

    关注数学,关注AI,关注我们公众号ID:Math-AI 经典算法研究系列 遗传算法 1 初探遗传算法 Ok,先看维基百科对遗传算法所给的解释: 遗传算法是计算数学中用于解决最优化的搜索算法,是进化算法 ...

  4. 经典算法研究系列:十、从头到尾彻底理解傅里叶变换算法、上

     经典算法研究系列:十.从头到尾彻底理解傅里叶变换算法.上 作者:July.dznlong   二零一一年二月二十日 推荐阅读:The Scientist and Engineer's Guide t ...

  5. 程序员面试、算法研究、编程艺术、红黑树4大系列集锦与总结

    程序员面试.算法研究.编程艺术.红黑树4大经典原创系列集锦与总结 作者:July--结构之法算法之道blog之博主. 时间:2010年10月-2011年6月. 出处:http://blog.csdn. ...

  6. 基于深度学习的场景分割算法研究综述

    基于深度学习的场景分割算法研究综述 人工智能技术与咨询 来自<计算机研究与发展> ,作者张 蕊等 摘 要 场景分割的目标是判断场景图像中每个像素的类别.场景分割是计算机视觉领域重要的基本问 ...

  7. 经典算法研究系列:七、深入浅出遗传算法,透析GA本质【转载】

    本文由July 发表在他的博客中,原文参见http://blog.csdn.net/v_JULY_v/archive/2011/01/12/6132775.aspx,对遗传算法分析的很透彻,是学习算法 ...

  8. 空间中的语义直线检测_基于语义分割的车道线检测算法研究

    龙源期刊网 http://www.qikan.com.cn 基于语义分割的车道线检测算法研究 作者:张道芳 张儒良 来源:<科技创新与应用> 2019 年第 06 期 摘 ; 要:随着半自 ...

  9. 逻辑回归模型算法研究与案例分析

    逻辑回归模型算法研究与案例分析 (白宁超 2018年9月6日15: 21:20) 导读:逻辑回归(Logistic regression)即逻辑模型,属于常见的一种分类算法.本文将从理论介绍开始,搞清 ...

最新文章

  1. Knowledge Point 20180305 数据在计算机中的表示
  2. 机器学习-斯坦福:学习笔记6-朴素贝叶斯
  3. 直播这把“火”,还能烧多久?
  4. python列表功能默写_Python list(列表)功能详解
  5. openfire学习4---android客户端聊天开发之聊天功能开发
  6. 1112: 进制转换(函数专题)
  7. ASP.NET MVC5 与EF6学习系列
  8. python3 enumerate()函数笔记
  9. 批处理(bat)实现SQLServer数据库备份与还原
  10. Tuple and Tie
  11. postgres复制数据库
  12. C Tricks(十一)—— 排除一个二维数组的边界
  13. supervessel-免费云镜像︱GPU加速的Caffe深度学习开发环境
  14. C语言基础入门(经典收藏)
  15. Intel Optane 内存个人安装与使用步骤 Dell 灵越
  16. 工作流Activiti 6.x
  17. shell蚂蚁森林_和“蚂蚁森林”的融合
  18. html格式如何转换mp4视频,html怎样用格式工厂转换成mp4
  19. 计算机之父ppt,24计算机之父童年的故事.ppt
  20. 求购二手《良葛格Java JDK 5.0学习笔记》

热门文章

  1. 当代年轻人怎样安心立命
  2. 递归经典案例《买啤酒问题》
  3. 演艺O2O即将爆发,蛋糕如何分?
  4. 3.1 第一个外设GPIO GPIO输出
  5. 逻辑回归模型_逻辑回归
  6. vue elementui 上传图片限制格式、大小和尺寸
  7. Proxmark3笔记(一)
  8. base.dll丢失的解决方法_base.dll文件丢失修复教程
  9. 不把网民权益当回事 网络安全早晚出大事
  10. 厨卫电器行业S2B2C系统网站解决方案:打造S2B2C平台全渠道商业系统