c语言三角形判定函数 c语言用函数判断三角形

怎样用C语言判断三角形类型(等边,等腰,直角,等腰直角)?#includestdio.h
main()
{
double a[3],b;
while(1){
scanf("%lf %lf %lf",a[0],a[1],a[2]);//输入三边
if(a[0]0a[1]0a[2]0){//三边中任何一边都得大于0
if(a[0]a[1]){b=a[0];a[0]=a[1];a[1]=b;} //将最大的边交换到a[0]中
if(a[0]a[2]){b=a[0];a[0]=a[2];a[2]=b;}
if(a[1]+a[2]=a[0]){
printf("不是三角形\n");continue;}//两个短边之和不大于第三边,不是三角形
if(((int)(a[1]*a[1])+(int)(a[2]*a[2])==(int)(a[0]*a[0]))(a[0]==a[1]||a[1]==a[2]||a[0]==a[1])){
printf("等腰直角三角形\n");continue;}//两个短边的平方=长边的平方就是直角
if((int)(a[1]*a[1])+(int)(a[2]*a[2])==(int)(a[0]*a[0])){
printf("直角三角形\n");continue;}
if(a[0]==a[1]a[0]==a[2]){
printf("等边三角形\n");continue;}
if(a[0]==a[1]||a[1]==a[2]||a[0]==a[1]){
printf("等腰三角形\n");continue;}
}else
printf("不是三角形\n");
}
}
//这里计算直角三角形时,转成int在进行比较,是为了降低精度,特别是计算等腰直角三角形,
//根号2,是无限的小数,不降低精度很难能得到的相等关系的 。
如图所示,望采纳 。。。。。。
C语言:三角形类型判断(循环)按照c语言三角形判定函数你c语言三角形判定函数的要求编写c语言三角形判定函数的判断三角形类型c语言三角形判定函数的C语言程序如下
#includestdio.h
#includemath.h
float cal_area(float a,float b,float c){
float p,s;
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
return s;
}
int main(){
int i,n;
float a,b,c,e=0.001;
scanf("%d",n);
for(i=0;in;i++){
scanf("%f%f%f",a,b,c);
if(a+b=c || a+c=b || b+c=a){
printf("no triangle\n");
}else if(fabs(a-b)efabs(b-c)e){
printf("equilateral triangle,");
printf("%.1f\n",cal_area(a,b,c));
}else if((fabs(a-b)e || fabs(b-c)e || fabs(a-c)e)(fabs(a*a+b*b-c*c)e || fabs(a*a+c*c-b*b)e || fabs(b*b+c*c-a*a)e)){
printf("isosceles right triangle,");
printf("%.1f\n",cal_area(a,b,c));
}else if(fabs(a-b)e || fabs(b-c)e || fabs(a-c)e){
printf("isosceles triangle,");
printf("%.1f\n",cal_area(a,b,c));
}else if(fabs(a*a+b*b-c*c)e || fabs(a*a+c*c-b*b)e || fabs(b*b+c*c-a*a)e){
printf("right triangle,");
printf("%.1f\n",cal_area(a,b,c));
}else{
printf("general triangle,");
printf("%.1f\n",cal_area(a,b,c));
}
}
return 0;
}
运行结果
3
3.0 2.0 6.0
no triangle
3.0 4.0 5.0
right triangle,6.0
1.0 1.0 1.414
isosceles right triangle,0.5
c语言判断三角形一、三角形问题:
(1)
#includestdio.h
#includemath.h
void
method(float
a,float
b,float
c)
{
float
p;
if((((a+b)=c)(fabs(a-b)c))||
(((b+c)=a)(fabs(b-c)a))||
(((a+c)=b)(fabs(a-c)b)))
{
if(a==b||a==c||b==c)
{
if(a==ba==cb==c)
printf("等边三角形\n");
else
printf("等腰三角形\n");
}
else
printf("一般三角形\n");
}
else
{
printf("不能构成三角形\n");
}
}
main()
{
float
a,b,c;
intflag=0;
printf("请选择要进行的操作\n1
创建一个三角形.\n0
退出\n");
scanf("%d",flag);
while(flag==1)
{
printf("请输入三角形的三条边长:\n");
scanf("%f",a);
scanf("%f",b);
scanf("%f",c);
if((a=1a=100)(b=1b=100)(c=1c=100))
method(a,b,c);
else
printf("请输入1-100之间的数作为边长!");
printf("请选择要进行的操作\n1
创建一个三角形.\n0

推荐阅读