You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言三角形判断代码BUG:等边三角形被识别为等腰三角形

问题分析与修复:等边三角形判断逻辑错误

问题现象

当输入三边均为3时,程序未输出预期的“equilateral(等边三角形)”,反而输出“isosceles(等腰三角形)”。

错误原因

代码中等边三角形的判断条件a==b==c写法错误。在C语言中,表达式会从左到右依次求值:

  1. 先计算a==b,得到布尔结果(相等为1,不等为0)
  2. 再将这个结果与c比较
    当a=b=c=3时,3==3得到1,接着1==3的结果为假,导致第一个if条件不成立,程序进入了判断等腰三角形的分支。

修复方案

将等边三角形的判断条件改为a == b && b == c,这样可以正确判断三边是否全部相等。

修正后的完整代码

#include <stdio.h>
int main()
{
    int a;
    int b;
    int c;

    printf("Enter first side: ");
    scanf("%d", &a);
    
    printf("Enter second side: ");
    scanf("%d", &b);
    
    printf("Enter third side: ");
    scanf("%d", &c);
    
    if (a+b>c && b+c>a && c+a>b)
    {
        if (a == b && b == c)
        {
            printf("The triangle is equilateral.");
        }
    
        else if (a==b || b==c || c==a)
        {
            printf("The triangle is isosceles.");
        }
    
        else
        {
            printf("The triangle is scalene.");
        }
    }
    
    else
    {
        printf("Triangle is not valid.");
    }
    return 0;
}

修复效果

输入三边均为3时,程序会正确输出:

Enter first side: 3
Enter second side: 3
Enter third side: 3
The triangle is equilateral.

内容的提问来源于stack exchange,提问作者Subhajit Roy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 10:27:27