C语言判断三角形提问

判断三角形(不包括直角三角形的情况)
只有等边三角形:equilateral triangle.
等腰三角形:isoceles triangle.
不构成三角形:non-triangle.
一般三角形:triangle.
要用if语句
不知道哪里错了QAQ

img

求解答!

小魔女参考了bing和GPT部分内容调写:
判断三角形的方法有很多,但是最常用的方法是根据三角形的三边长度来判断。如果三边长度都相等,则是等边三角形;如果两边长度相等,则是等腰三角形;如果三边长度都不相等,则是一般三角形;如果任意两边之和小于第三边,则不构成三角形。

如果需要用代码编写,可以这样:

a = int(input("请输入三角形的第一条边长度:"))
b = int(input("请输入三角形的第二条边长度:"))
c = int(input("请输入三角形的第三条边长度:"))

if a == b and b == c:
    print("这是一个等边三角形")
elif a == b or b == c or a == c:
    print("这是一个等腰三角形")
elif a + b > c and a + c > b and b + c > a:
    print("这是一个一般三角形")
else:
    print("这不是一个三角形")

回答不易,记得采纳呀。

输入三个数 ,少写了一个 %d

scanf("%d %d %d",&x,&y,&z);

第5行scanf()少获取了一个值,里面再补上一个%d即可。

修改如下:

#include <stdio.h>
#include <math.h>

int main(void){
    
    int x,y,z,a,b,c;
    scanf("%d %d %d",&x,&y,&z); // 补上一个%d即可 
    a=abs(x-y);
    b=abs(z-y);
    c=abs(x-z);
    
    if(x==y&&y==z){
        printf("equilateral triangle.\n");
    }else if(x==y || x==z || y==z){
        printf("isoceles triangle.\n");
    }else if(x+y>z&&x+z>y&&y+z>x&&a<z&&b<x&&c<y){
        printf("triangle.\n");
    }else {
        printf("non-triangle.\n");
    }
    
    return 0;
} 

img