主题:各位大虾,这道题怎么编?
天水
[专家分:320] 发布于 2005-07-09 12:22:00
输入3个数,判断它是不是直角三角形?
回复列表 (共11个回复)
沙发
zcyspace [专家分:150] 发布于 2005-07-09 23:11:00
#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))这一步是关键。“||”是逻辑运算符"或"(‘或者’的意思),“&&”是逻辑运算符‘与’(‘和’的意思)。“==”就是数学中的等于号。
板凳
ArrayNil [专家分:320] 发布于 2005-07-10 13:18:00
找最长边,然后看它的平方是否等于另两条边的平方和
3 楼
sunnyfish [专家分:250] 发布于 2005-07-10 13:22:00
这个不难吧,先找出3个边中最长的(如果有2个或3个一样就直接输出"NO"吧,呵呵),然后看2个短边的平方和是不是长的平方和不就可以了吗!具体参见2楼的加一些改进就可以了!
4 楼
天水 [专家分:320] 发布于 2005-07-10 14:00:00
谢谢各位大虾。
5 楼
不是归人 [专家分:1400] 发布于 2005-07-14 15:15:00
1楼的注意a,b,c是float的,不要直接用==判断。
6 楼
iRabbit [专家分:60] 发布于 2005-07-15 22:53:00
排一下序
if a+b<=c then 不
else if a*a+b*b=c*c then 是 else 不
7 楼
zcyspace [专家分:150] 发布于 2005-07-17 22:01:00
刚学会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 楼
binsuateks [专家分:90] 发布于 2005-07-17 22:48:00
大家已编了这么多,我用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 楼
brianzf [专家分:30] 发布于 2005-07-28 14:19:00
我觉的比赛的话,用c++的很有优势的,特别是联合着种数据结构好有用哦
10 楼
alias0018 [专家分:480] 发布于 2005-07-28 18:57:00
7搂的不错,不用找哪个是斜边,麻烦!
只要有一个变得平方=其它两边的平方和肯定是直角三角形了!
我来回复