一、流程图

二、测试用例

三、测试结果
通过测试
四、代码优化建议
这次代码,无用的判断语句过多,无法做到准确的语句覆盖,建立可以优化逻辑,简化一个判断,以下给我出自己优化的代码
#include <bits/stdc++.h>
using namespace std;
string CheckResult( int tr[] ){
if( tr[1] < 1 || tr[3] > 100 ){
return "边的值不在范围内";
}
if( tr[1] + tr[2] <= tr[3] ){
return "不能构成三角形";
}
if( tr[1] == tr[3] ){
return "可构成等边三角形";
}
if( tr[1] == tr[2] || tr[2] == tr[3] ){
return "可构成等腰三角形";
}
if( tr[1] * tr[1] + tr[2]*tr[2] == tr[3] * tr[3] ){
return "可构成直角三角形";
}
else{
return "可构成一般三角形";
}
}
int main(){
int tr[5];
while( scanf("%d %d %d", &tr[1], &tr[2], &tr[3] ) != EOF ){
printf("%d,%d,%d",tr[1],tr[2],tr[3]);
sort( tr + 1 , tr + 1 + 3 );
string ans = CheckResult( tr );
cout << ans << ‘\n‘;
}
return 0;
}
原文:http://www.cnblogs.com/Tichocan/p/6576087.html