定义三角形类型的程序

白盲人

我想我被if/else if语句困住了程序定义三角形的类型。

我不明白,为什么它不能正常工作。而且,如果不那么困难,您能展示如何使用勾股定理来优化直角三角形的工作吗?为了不将直角三角形与其他三角形混合在一起。

码:

int main() {
    int a = 3;
    int b = 4;
    int c = 5;

    int angle_A = 100;
    int angle_B = 10;
    int angle_C = 70;

    if (a == b && a == c && c == b) {
        printf("Equilateral triangle\n");
    }
    else if (a == c || b == c || a == b) {
        printf("isosceles triangle.\n");
    }
    if ((pow(c, 2) == pow(b, 2) + pow(a, 2)) || (pow(a, 2) == pow(b, 2) || pow(c, 2)) || (pow(b, 2) == pow(c, 2) + pow(a, 2))) {
        printf("right-angled triangle.\n");
    }
    if ((angle_A < 90 || angle_B < 90 || angle_C < 90) && angle_A + angle_B + angle_C == 180) {
        printf("acute-angled triagle.\n");
    }
    if ((angle_A > 90 || angle_B > 90 || angle_C > 90) && angle_A + angle_B + angle_C == 180) {
        printf("An obtuse triangle.\n");
    }
return 0;
}

此代码的输出:

right-angled triangle.
acute-angled triangle.
An obtuse triangle.
阿卜杜勒·阿齐兹·阿卜杜勒·拉特夫

您有一些错误,以下是详细信息:

  1. 长度应该是double没有int
  2. 您不能同时定义长度和角度,因为可以从长度中获得角度。
  3. 获得三个中最长的长度,然后用勾股定理检查。
int main() {
    double t;
    double a = 3;
    double b = 4;
    double c = 5;

    if (a == b && a == c)
        printf("Equilateral triangle\n");

    else if (a == c || b == c || a == b)
        printf("isosceles triangle.\n");

    if (a < b)
    {
        t = a;
        a = b;
        b = t;
    }
    if (a < c)
    {
        t = a;
        a = c;
        c = t;
    }

    if (pow(a, 2) == pow(b, 2) + pow(c, 2))
        printf("Right-angled triangle.\n");
    else if (pow(a, 2) < pow(b, 2) + pow(c, 2))
        printf("Acute triagle.\n");
    else
        printf("Obtuse triangle.\n");
return 0;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章