问题描述
输入3个整数abc,判断由abc作为3条边能否组成的三角形
如果能,则判断该三角形是等边三角形、等腰三角形还是普通三角形
如果不能,则输出不是三角形
示例
输入:5,5,5 输出:等边三角形
输入:3,5,5 输出:等腰三角形
输入:3,4,5 输出:普通三角形
输入:9,4,3 输出:不是三角形
思路分析
1.首先判断是否三条边能否构成一个三角形,根据三角形任意两条边相加一定大于大三条边原则来实现,如果可以组成三角形则继续判断下面的2、3、4
2.判断三条边都相等是否成立,如果成立则直接输出等边三角形
3.判断任意两边相等,但又不等与第三边,如果成立则直接输出等腰三角形
4.如果上面的2.、3都不满足的话,输出普通三角形
5.如果不能构成三角形,输出不是三角形
代码实现
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
int c = 0;
//用循环实现连续输入,EOF代表读取失败
while (scanf("%d%d%d", &a, &b, &c) != EOF)
{
if (a + b >= c && a + c >= b && b + c >= a)//判断是否为三角形,任意两边大于第三边
{
//三边相等
if (a == b && b == c)
{
printf("等边三角形\n");
}
//两边相等但是不等于第三边
//这里是else if()的话就只需要判断是否有两边相等
else if (a == b || a == c || b == c)
{
printf("等腰三角形\n");
}
//不满足上面两种就是普通三角形了
else
{
printf("普通三角形\n");
}
}
else
{
printf("不是三角形\n");
}
}
return 0;
}