【id:30】【20分】D. 三角形判断(选择)
题目描述
输入三角形三条边的长度a、b、c,判断它们分别能构成什么形状的三角形:普通三角形、等边三角形、等腰三角形、等腰直角三角形。
(提示:判断两个浮点数a、b相等,可以使用fabs(a-b)<0.001 )
输入
三条边的长度
输出
三角形类型的名称;如果不能构成三角形,就输出“非三角形”
本题考察嵌套分支结构
值得注意的是判断两个浮点数相等,用的是fabs(a,b)<0.001!
#include<stdio.h>
#include<math.h>
int main()
{
float a,b,c;
scanf("%f%f%f",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{
if(a==b&&a==c&&b==c)
printf("等边三角形\n");
else if((a==b&&a!=c&&b!=c||a==c&&a!=b&&c!=b||b==c&&b!=a&&c!=a)&&fabs(pow((pow(a,2)+pow(b,2)),0.5)-c)<0.001||fabs(pow((pow(a,2)+pow(c,2)),0.5)-b)<0.001||fabs(pow((pow(c,2)+pow(b,2)),0.5)-a)<0.001)
printf("等腰直角三角形\n");
else if(a==b&&a!=c&&b!=c||a==c&&a!=b&&c!=b||b==c&&b!=a&&c!=a)
printf("等腰三角形\n");
else
printf("普通三角形\n");
}
else
printf("非三角形\n");
return 0;
}