C语言 判断三角形的类型

要求用户输入三角形三边,1判断三角形是否成立,2若成立判别为以下哪种三角形:直角,等腰直角,等腰,等边,其它(大一新生,要求程序不要过于高档)

#include <iostream.h>
void main()
{
cout<<"请输入三角形三边"<<endl;
int a,b,c;
cin>>a>>b>>c;
if ((a + b) <= c || (a - b) >= c || (a+c) <= b || (a - c) >=b || (b+c)<= a || (b-c)>=a)
{
cout<<"三角形不成立!"<<endl;
}
else
{
if (a==b)
{
if (a==c)
{
cout<<"等边"<<endl;
}
else if (a!=c&&a*a+b*b==c*c)
{
cout<<"等腰直角"<<endl;
}
else
{
cout<<"等腰"<<endl;
}
}
else if (a==c)
{
if (a==b)
{
cout<<"等边"<<endl;
}
else if (a!=c&&a*a+c*c==b*b)
{
cout<<"等腰直角"<<endl;
}
else
{
cout<<"等腰"<<endl;
}
}
else if (b==c)
{
if (a==b)
{
cout<<"等边"<<endl;
}
else if (a!=c&&a*a==c*c+b*b)
{
cout<<"等腰直角"<<endl;
}
else
{
cout<<"等腰"<<endl;
}
}
else
{
if (a*a==c*c+b*b || a*a+c*c==b*b || a*a+b*b==c*c)
{
cout<<"直角"<<endl;
}
else
{
cout<<"其他"<<endl;
}
}

}
}

说白了是对三角形的数学判断,就是三角形三边性质,成立的条件是两边之和大于第三边,之差小于第三边。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-08
main()
{ int a,b,c;
printf("输入三边边长:");
scanf("%d,%d,%d",&a,&b,&c);
if(a+b>c&&a-b<c)
{ if(a=b=c) printf("为等边三角形");
else if(a=b||b=c||a=c)
{ if(a2+b2=c2) printf("为等腰直角三角形");
else printf("等腰三角形");}
else if ("a2+b2=c2") printf("为直角三角形");
else printf("为一般三角形");
}
else printf("不是三角形");
}

a2为a的平方!!
你自己检查下有没有漏掉标点!!!
第2个回答  2013-04-08
#include<stdio.h>
int main(){
float a,b,c,temp;
do{
printf("Please input a,b,c:\n");
scanf("%f%f%f",&a,&b,&c);
/*对a,b,c从小到大排序*/
if(a>b){temp=a;a=b;b=temp;}
if(a>c){temp=a;a=c;c=temp;}
if(b>c){temp=b;b=c;c=temp;}
if(a+b>c)break;
else {printf("三角形不成立\n");}
}while(1);
if(a==b&b==c)printf("等边三角形\n");
else if(a==b)
if(a*a+b*b==c*c)printf("等腰直角三角形\n");
else printf("等腰三角形\n");
else if(a*a+b*b==c*c)printf("直角三角形\n");
else printf("一般三角形\n");
}
你可以试验一下,基本满足要求,只有等腰直角三角形,不好测试,因为肯定有边是带根号的
无法输入根号的数据啊
第3个回答  推荐于2018-03-02
#include <stdio.h>
#include <math.h>
int judge(int a,int b,int c)
{
/*当任意两边之和小于等于第三边或为非正数时直接PASS*/
if( (a+b<=c) || (b+c<=a) || (c+a<=b) || a<=0 || b<=0 || c<=0) {
return 1;
} else {
/*直角三角形的判断条件*/
if( (a*a+b*b==c*c) || (a*a+c*c==b*b) || (c*c+b*b==a*a))
return 2;
/*等腰三角形的判断条件*/
else if( (a==b || b==c || c==a) )
return 3;
else
return 4;
}
}
int main() {
int x,y,z;
printf("请输入三角形的三条边:");
scanf("%d %d %d",&x,&y,&z);
switch(judge(x,y,z)) {
case 1:printf("不符合构成三角形的条件.\n"); break;
case 2: printf("构成直角三角形.\n"); break;
case 3: if(x==y && y==z)
printf("构成等边三角形.\n");
else
printf("构成等腰三角形.\n");
break;
case 4:
printf("构成三角形.\n");
break;
}
return 0;
}

纯手工制作,希望对你有帮助!
自己动手试试,不要错过美好的时光哟。追问

非常感谢,和我设计的思路差不多,呵呵,对于初学者,这个答案是最好的

本回答被网友采纳
相似回答