两边之和大于第三边就是三角形,输入三个数后可以先排序,再判断是否为三角形
【以下回答由 GPT 生成】
我可以帮你实现这个功能。下面是一个用C语言实现的判断三角形的程序:
#include <stdio.h>
int main() {
float a, b, c;
printf("请输入三角形的三个边长:\n");
scanf("%f %f %f", &a, &b, &c);
if (a + b > c && a + c > b && b + c > a) {
printf("可以构成三角形\n");
} else {
printf("不能构成三角形\n");
}
return 0;
}
这段代码首先会提示用户输入三角形的三个边长,并保存到变量a、b、c中。然后通过判断输入的边长是否满足构成三角形的条件,即任意两边之和大于第三边,来确定是否能够构成一个三角形。最后根据判断结果输出相应的提示信息。
请注意,在这段代码中我假设输入的边长是浮点数类型,如果需要使用整数类型,请将代码中的float
改为int
。为了简化程序,我没有进行输入的合法性检查,如果你需要对输入进行检查,可以在代码中添加相应的逻辑。
希望这个程序可以帮到你!如果有任何问题,请随时提问。
供参考:
#include <stdio.h>
#include <math.h>
#define EPS 1e-5
int main()
{
float a,b,c;
int flag=1;
scanf("%f %f %f",&a,&b,&c);
if(a + b > c && b + c > a && a + c > b){
if(fabs(a - b) <= EPS && fabs(b - c) <= EPS && fabs(c - a) <= EPS)
printf("equilateral triangle");
else if(fabs(a - b) <= EPS || fabs(b - c) <= EPS || fabs(c - a) <= EPS)
printf("isoceles triangle");
else if(fabs(a*a + b*b - c*c) <= EPS ||
fabs(a*a + c*c - b*b) <= EPS ||
fabs(c*c + b*b - a*a) <= EPS)
printf("right-angled triangle");
else
printf("arbitrary triangle");
}
else
printf("It isn't triangle.");
return 0;
}