如何用C语言做这道题{输入三边长a,b,c,由此判断能否构成三角形,是等边三角形,等腰三角形还是一般三角形谢

一道C语言题目

我写的还判断是否是直角三角形,等腰直角三角形 #include<stdio.h> #include<iostream.h> void fun(float m,float n,float k) { float max;float min;float mid; if(m>n) { max=m;min=n; } else { max=n;min=m; } if(k>max) { mid=max;max=k; } else if(k<min) { mid=min;min=k; } else { mid=k; } if(max<min+mid) { if(min==max) { printf("等边三角形\n"); } else if(mid==min||mid==max) { if((min*min+mid*mid)==max*max) { printf("等腰直角三角形\n"); } else { printf("等腰三角形\n"); } } else { if((min*min+mid*mid)==max*max) { printf("直角三角形\n"); } else { printf("一般三角形\n"); } } } else { printf("不是三角形\n"); } } void main() { float a,b,c; while(scanf("%f\t%f\t%f",&a,&b,&c)==3) { fun(a,b,c); } }}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-07-05
#include<iostream> #include<cmath> using namespace std; int Cal(int x1,int y1,int x2,int y2) { return (x1-x2)*(x1-x2)+(y1-y2)*(y1-y2); } int check(int a,int b,int c) { return (a+b-c); } int main() { freopen("A-large.in","r",stdin); freopen("A large.out","w",stdout); int n,i; int x1,x2,x3,y1,y2,y3; int a,b,c; cin>>n; for(i=1;i<=n;i++) { cin>>x1>>y1>>x2>>y2>>x3>>y3; a=Cal(x1,y1,x2,y2); b=Cal(x2,y2,x3,y3); c=Cal(x3,y3,x1,y1); if((sqrt(a)+sqrt(b)-sqrt(c)<=0)||(sqrt(a)+sqrt(c)-sqrt(b)<=0)||(sqrt(b)+sqrt(c)-sqrt(a)<=0)||(a==0)||(b==0)||(c==0)) cout<<"Case #"<<i<<": not a triangle"<<endl; else { if((check(a,b,c)>0)&&(check(a,c,b)>0)&&(check(b,c,a)>0)) { if((a==b)||(b==c)||(c==a)) cout<<"Case #"<<i<<": isosceles acute triangle"<<endl; else cout<<"Case #"<<i<<": scalene acute triangle"<<endl; } else if((check(a,b,c)==0)||(check(a,c,b)==0)||(check(b,c,a)==0)) { if((a==b)||(b==c)||(c==a)) cout<<"Case #"<<i<<": isosceles right triangle"<<endl; else cout<<"Case #"<<i<<": scalene right triangle"<<endl; } else { if((a==b)||(b==c)||(c==a)) cout<<"Case #"<<i<<": isosceles obtuse triangle"<<endl; else cout<<"Case #"<<i<<": scalene obtuse triangle"<<endl; } } } fclose(stdin); fclose(stdout); return 0; }
相似回答