#include <stdio.h>
#include <math.h>
#define EPS 1e-1
/**
* a : 边1
* b : 边2
* c : 边3
* return : 0/1 0为不可以组成三角形 1为可以组成三角形
/
int Triangle(double a, double b, double c)
{
/************** Begin /
if(a+b>c&&a+c>b&&b+c>a)
return 1;
else
return 0;
/ End ***************/
}
/**
* a : 边1
* b : 边2
* c : 边3
* return : 0/1 0为不可以组成等边三角形 1为可以组成等边三角形
/
int Equilateral(double a, double b, double c)
{
/************** Begin /
if(a==b&&b==c)
return 1;
else
return 0;
/ Begin ***************/
}
/**
* a : 边1
* b : 边2
* c : 边3
* return : 0/1 0为不可以组成等腰三角形 1为可以组成等腰三角形
/
int Isosceles(double a, double b, double c)
{
/************** Begin /
if(a==b||a==c||b==c)
return 1;
else
return 0;
/ Begin ***************/
}
/**
* a : 边1
* b : 边2
* c : 边3
* return : 0/1 0为不可以组成直角三角形 1为可以组成直角三角形
/
int Right(double a, double b, double c)
{
/************** Begin ***********/
if(aa+bb==cc)
return 1;
else
return 0;
/********** Begin ***************/
}
int main(void)
{
double a,b,c;
printf("Input the three edge length a,b,c:");
scanf("%lf,%lf,%lf", &a, &b, &c);
/*************** Begin /
int t=Triangle(a,b,c);
if(t==0)
printf("不能构成三角形");
else { int z=Equilateral(a,b,c);
if(z==1)
printf("等边三角形");
else
{
int x=Isosceles(a,b,c);
if(x==1)
{
int v= Right(a,b,c);
if(v==1)
printf("等腰直角三角形");
else
printf("等腰三角形");
}
else
{
int v= Right(a,b,c);
if(v==1)
printf("直角三角形");
}
}
/ Begin ***************/
}}
有误差的,14.14的平方是199.9396并不是严格意义上的相等
比较两个浮点数是否相等,不能直接用==
,因为浮点数计算有截断误差。而应该用下面方式判断它们是否相等:
double eps = 1e-5; // 计算精度
double a, b;
// 计算a,b的值。。。
if (fabs(a-b) <= eps) {
// a与b相等
}