只需切换 if 语句的顺序。因为每个等边三角形都是等腰的,所以你永远不会把它变成 elseif。使您的代码如下所示:
if (side1 == side2 && side2 == side3 && side3 == side1)
printf("Equilateral triangle");
else if (side1 == side2 || side2 == side3 || side1 == side3)
printf("Isosceles triangle.");
或者,如果要打印两个结果,可以将等边 if 块嵌套在等腰 if 块内:
if (side1 == side2 || side2 == side3 || side1 == side3){
if (side1 == side2 && side2 == side3 && side3 == side1){
printf("Equilateral triangle");
}
printf("Isosceles triangle.");
}
要考虑的另一个优化是您的等边检查只需要两次检查相等。IE:
(side1 == side2 && side2 == side3) => (side1 == side3)
所以,if 语句可以这样写:
if (side1 == side2 && side2 == side3)