【发布时间】:2017-12-04 12:20:10
【问题描述】:
我想编写一个 C++ 程序来判断三角形是否有效
这是我的代码:
#include <iostream>
using namespace std;
int main () {
int a,b,c;
cin>>a>>b>>c;
if (a+b+c==180)
cout <<"Yes";
else
cout <<"No";
return 0;
}
用户将输入 3 个角度,例如 50 30 100 它将打印有效 Yes,但如果他输入了会怎样
0 0 180 只输入一个角度就会打印yes。那不是三角形,我的程序将打印是。我应该怎么做才能解决这个问题?
【问题讨论】:
-
是否将
0 0 180视为三角形是相当随意的,因此您必须使用额外的分支来处理这种情况 -
顺便说一句,我会更担心用户输入类似
-20 -10 210.... -
@tobi303,是的,这些情况我该怎么办?
-
在这种情况下该怎么做取决于您。如果你不想有负角,使用无符号类型将是一个开始
-
除了检查总和之外,您还应该对每个角度进行一些有效的范围检查(例如 1