回 帖 发 新 帖 刷新版面

主题:各位大虾,这道题怎么编?

输入3个数,判断它是不是直角三角形?

回复列表 (共11个回复)

沙发

#include"iostream.h"
int main()
{
    float a,b,c;    //定义a,b,c为实数
    cout<<"请输入边长a\n";    //C++中的输出语句
    cin>>a;        //输入a
    cout<<"请输入边长b\n";
    cin>>b;
    cout<<"请输入边长c\n";
    cin>>c;
    if((a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)&&(a+b>c&&a+c>b))
        //判断该三角形是否是直角三角形
        cout<<"该三角形是直角三角形\n";
        //如果是输出"该三角形是直角三角形"
    else
        cout<<"该三角形不是直角三角形\n";
        //如果不是输出"该三角形不是直角三角形"
    return 0;
}
不懂C++也没关系,我在语句后加了注释。
其中if((a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)&&(a+b>c&&a+c>b))这一步是关键。“||”是逻辑运算符"或"(‘或者’的意思),“&&”是逻辑运算符‘与’(‘和’的意思)。“==”就是数学中的等于号。

板凳

找最长边,然后看它的平方是否等于另两条边的平方和

3 楼

这个不难吧,先找出3个边中最长的(如果有2个或3个一样就直接输出"NO"吧,呵呵),然后看2个短边的平方和是不是长的平方和不就可以了吗!具体参见2楼的加一些改进就可以了!

4 楼

谢谢各位大虾。

5 楼

1楼的注意a,b,c是float的,不要直接用==判断。

6 楼

排一下序
if a+b<=c then 不
  else if a*a+b*b=c*c then 是 else 不

7 楼

刚学会Pascal,如有错误之处请各位高手指正。
program pz(input,output);
var a,b,c:real;
begin
write('请输入三角形的三边长:');
read(a,b,c);
writeln;
if (a*a=b*b+c*c or a*a+c*c=b*b or b*b+c*c=a*a) and (a+b>c or a+c>b)
then writeln('该三角形是直角三角形');
else wrteln('该三角形不是直角三角形');
end.

8 楼

大家已编了这么多,我用C语言用另一个方法编一个.方法为先找到斜边,然后看3条边是否符合勾股定理:
main()
{
  float one,two,three,t;
  printf("请输入三角形的3边长:");
  scanf("%f%f%f",&one,&two,&three);
  if(one>two)         /*找斜边*/
   {  t=one; one=two; two=t;}
  if(one>three)
   { t=one; one=three; three=t;}
  if(two>three)
   { t=two; two=three; three=t;}  /*在此three为最长的边即是斜边*/
  if(one*one+two*two==three*three) /*是否符合勾股定理*/
  printf("此三角形是一个直角三角形!");
  else printf("此三角形不是一个直角三角形!");  
    
}
因时间仓促!有什么问题请大家指教!~
我创了一个程序问题讨论群,大家有兴趣可以到里面和我们一起讨论问题!
群号为:7143175 群名:二进值家园

9 楼

我觉的比赛的话,用c++的很有优势的,特别是联合着种数据结构好有用哦

10 楼

7搂的不错,不用找哪个是斜边,麻烦!

只要有一个变得平方=其它两边的平方和肯定是直角三角形了!

我来回复

您尚未登录,请登录后再回复。点此登录或注册