C语言编程(三角形问题)

输入三角形的三条边a,b,c,判断它们能否构成三角形。若能构成三角形,指出是何种三角形。(一般三角形,等腰三角形,直角三角形,)
能不能请大家给个C语言程序?

随便写了个:
#include <stdio.h>
main()
{
int a,b,c;
printf("请输入三角形的三边:");
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
if((a+b)>c&&(b+c)>a&&(a+c)>b)
{
printf("这三边可以组成三角形!\n");
if (a*a+b*b==c*c||a*a+c*c==b*b||c*c+b*b==a*a)
{
printf("这是个直角三角形!\n");
}
if ((a==b)&&(b==c))
{
printf("这是个等边三角形!\n");
}
if (a==b||a==c||c==b)
{
printf("这是个等腰三角形!\n");
}
}
else
printf("这三条边无法组成三角形!\n");
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-25
//仓促之下写的,保证能够在C-FREE和vs2008下运行,但是也许不够简化,你
//自己看看能不能简化一下哈!
#include"stdio.h"
#include"stdlib.h"
void main()
{
int x,y,z;
int a,b,c=3;
printf("请输入三条边的长度\n");
scanf("%d %d %d",&x,&y,&z);
a=x-y;
b=abs(a);
if(b>=z) c=0;
if((x==y)||(x==z)||(y==z)) c=1;
if((x*x+y*y==z*z)||(x*x+z*z==y*y)||(z*z+y*y==x*x ))
c=2;
if(c==2&&c==1) c=4;
switch(c)
{
case 0:{printf("不能构成三角形\n");break;}
case 1:{printf("等腰三角形\n");break;}
case 2:{printf(" 直角三角形\n");break;}
case 3:{printf("一般三角形\n");break;}
case 4:{printf("等腰直角三角形\n"); break;}

}

}
第2个回答  2010-04-25
1.两边之和大于第三边 且 两边之差小于第三边 这条件能构成三角形
2.a=b=c等边三角形.1成立a=b,c;b=a,c为等腰三角形
第3个回答  2010-04-25
两边之和大于第三边 且 两边之差小于第三边
这就是判断是否能成为三角形的条件
至于直角和锐角,钝角也是有条件的
第4个回答  2010-04-25
就如楼上说的那样,需要条件,翻译成C语句就好了!说实话,我判断的条件忘了,你给出来吧?
相似回答