三角形判定

zzhouxiaoyu 2008-12-01 10:16:33
#include<iostream>
using namespace std;
int main()
{
double a,b,c;
cout<<"请分别输入a,b,c的值(每输入一个值后回车键):"<<endl;
cin>>a>>b>>c;
cout<<"a="<<a<<'\t'<<"b="<<b<<'\t'<<"c="<<c<<endl;
if(a+b>c && a+c>b && b+c>a){
cout<<"它们能够构成三角形"<<endl;
if(a==b && b==c) cout<<"a b c构成的图形为等边三角形";
else if(a-b==0 && b!=c) cout<<"构成的三角形为等腰三角形";
else if(a-c==0 && a!=b) cout<<"构成的三角形为等腰三角形";
else if(b-c==0 && c!=a) cout<<"构成的三角形为等腰三角形";
else if(a!=b && b!=c && a!=c) cout<<"构成的三角形为一般三角

形";
}
else cout<<"a,b,c不能构成三角形";
cout<<endl;
return 0;
}
上面的程序运行正确,而
else if(a-b==0 && b!=c) cout<<"构成的三角形为等腰三角形";
else if(a-c==0 && a!=b) cout<<"构成的三角形为等腰三角形";
else if(b-c==0 && c!=a) cout<<"构成的三角形为等腰三角形";
改成 else if(a==b!=c || b==c!=a ||c==a!=b) cout<<"构成的三角形为等腰三角形";
就不行?
...全文
226 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lc19890326 2008-12-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zzhouxiaoyu 的回复:]
明白了,改为
else if((a==b &&b !=c) || (b==c && c!=a) || (c==a && a!=b)) cout < <"构成的三角形为等腰三角形";
就可以了。
只是这样写是不是好的程序风格
[/Quote]
没什么不好的
zzhouxiaoyu 2008-12-02
  • 打赏
  • 举报
回复
明白了,改为
else if((a==b &&b !=c) || (b==c && c!=a) || (c==a && a!=b)) cout < <"构成的三角形为等腰三角形";
就可以了。
只是这样写是不是好的程序风格
wryse 2008-12-02
  • 打赏
  • 举报
回复
a==b!=c这样的连等是错误的……
我想LZ应该不会在一个判断里写出if(0<a<100)这样的语句吧,道理是一样的,只是a==b!=c这种写法可能编译不会报错就是了……
cigogo 2008-12-02
  • 打赏
  • 举报
回复
当表达式有多种运算符时,先处理算术运算符,接着处理比较运算符,然后再处理逻辑运算符,关系运算符的优先级高于逻辑运算符(不包括逻辑非运算).
都是比较运算符。从左到右。
Laozql 2008-12-01
  • 打赏
  • 举报
回复
else if(a==b!=c || b==c!=a ||c==a!=b) cout < <"构成的三角形为等腰三角形";
括号里不可以三个一起比较,比如
a==b!=c
它会先比较 a==b 如果a与b相等,返回1,然后1再与c作!=判定
healer_kx 2008-12-01
  • 打赏
  • 举报
回复
数学问题。

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧