编写程序,输入三角形三边 a、b、c,判断a、b、c能否构成三角形,若不能则输出相应的信息,若能则判断组成

编写程序,输入三角形三边 a、b、c,判断a、b、c能否构成三角形,若不能则输出相应的信息,若能则判断组成的是等腰、等边、直角还是一般三角形。

#include<stdio.h>
void main()
{
float a,b,c,aa,bb,cc;//定义三边及三边的平方
int flag=0;
printf("请输入三个非零数:");
scanf("%f,%f,%f",&a,&b,&c);//读取用户输入的数,并分别赋值给a,b,c
aa=a*a;
bb=b*b;
cc=c*c;
if((a<=0)||(b<=0)||(c<=0))
printf("输入数据有误!");//判断输入的数据是否非零
else //如果数据无误,进行下面判断
if((a+b>c)&&(a+c>b)&&(b+c>a))//任意两边之和大于第三边就能够成三角形
{
if(a==b&&b==c)
printf("\n输入的三个数能构成等边三角形\n");//三边相等为等边三角形
else
if(a==b&&b!=c||a==c&&b!=c||b==c&&a!=c)
{
flag=1;
printf("输入的三个数能构成等腰三角形\n");//任意两边边相等为等边三角形
}
else
if(aa+bb==cc||aa+cc==bb||bb+cc==aa)//勾股定理
{
printf("输入的三个数能构成直角三角形\n");
if(flag==1)
printf("因此,该三角形为等腰直角三角形\n");//有一个角为直角的等腰三角形为等腰直角三角形
}
else
printf("输入的三个数能构成一般三角形\n");
}
else printf("输入的三个数不能构成三角形\n");//否则不能构成三角形
}

这个程序我在VC里试过了,能够判断数据是否合格,是否能够成三角形,以及构成等腰、等边、直角、等腰直角还是一般三角形。你自己试试看看,希望对你有用,祝你好运!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-13
#include<stdio.h>
#include<math.h>
#define LIMIT 1e-1
int main()
{
float a,b,c;

printf("");
scanf("%f,%f,%f",&a,&b,&c);
if ((a+b)>c && (b+c)>a && (a+c)>b)
{
if ( fabs(a-b)<=LIMIT || fabs(b-c)<=LIMIT || fabs(c-a)<=LIMIT )
{
if (fabs(a*a+b*b-c*c) <= LIMIT || fabs(a*a+c*c-b*b) <= LIMIT || fabs(c*c+b*b-a*a) <= LIMIT )
{
printf("Iscsceles right triangle!");
}
else
{
printf("Iscsceles triangle!");
}
}
else if (fabs(a*a+b*b-c*c)<= LIMIT || fabs(a*a+c*c-b*b) <= LIMIT || fabs(c*c+b*b-a*a) <= LIMIT)
{
printf("Right angled triangle!");
}
else
{
printf("Triangle!");
}

}
else
{
printf("Error!");
}
return 0;
}
纯手写的,我们最近也在学,给分吧~~~
第2个回答  2012-03-09
是用c++还是什么其他语言?追问

c++

第3个回答  2012-03-09
你先问你下你要用什么程序编写啊,是C语言,还是追问

c++

相似回答