根据输入的三条边判断是否能组成三角形,如果能计算面积并判断是哪种三角形(等边、等腰、直角、一般)

在线等,明早要用
要C语言编程。

第1个回答  2013-01-12
完全实现了你的要求,求采纳!
#include<stdio.h>
#include<math.h>
void main()
{
float x,y,z,t,s;
double area;
printf("please input x,y,z:");
scanf("%f,%f,%f",&x,&y,&z);
if(x>y)
{
t=y;
y=x;
x=t;
}
if(z>x)
{
t=z;
z=x;
x=t;
}
putchar('\n');
if(y+z<=x||x<=0||y<=0||z<=0)
printf("三角形不存在\n");
else
{
printf("该三角形为:");
if(y*y+z*z==x*x)
{
if(z==y)
printf("等腰直角三角形");
else
printf("直角三角形");
}
else
{
if(y==z)
{
if(x==z)
printf("等边三角形");
else
printf("等腰三角形");
}
else
printf("普通三角形");
}
putchar('\n');
s=(x+y+z)/2;
area=sqrt(s*(s-x)*(s-y)*(s-z));
printf("面积=%.3lf\n",area);
}
}
第2个回答  2013-01-12
最长的边<短的两边相加
就能组成三角形追问

我补充过了,是C语言编程。求解,急用。

第3个回答  2013-01-12
这个啊,先给你个简单的。你可以再扩充。
#include "stdio.h"
#include "math.h"
int main()
{
float a,b,c,p,area;
int work=1;
while(work)
{
printf("Please Input three Slide:");
scanf("%f,%f,%f",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{
p=(a+b+c)/2;
p=p*(p-a)*(p-b)*(p-c);
area=sqrt(p);
printf("\nThe Area is:%f",area);
work=0;
break;
}
else
{
printf("no square\n");
}
}
return 0;
}
第4个回答  推荐于2017-10-04
#include <stdio.h>
#include<math.h>
void main(void)
{
double a,b,c,s,area;

printf("请输入三个边长:\n");
scanf("%lf%lf%lf",&a,&b,&c);
if(a+b>c && a+c>b && b+c>a)
{
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("三角形面积:%g\n",area);
if(a==b && a==c)
printf("可以构成一个等边三角形。\n");
else if(a*a==b*b+c*c || b*b==a*a+c*c || c*c==a*a+b*b)
{
if(a==b||b==c||a==c)
printf("可以构成一个等腰直角三角形。\n");
else
printf("可以构成一个直角三角形。\n");
}
else if(a==b||b==c||a==c)
printf("可以构成一个等腰三角形。\n");
else
printf("可以构成一个一般三角形。\n");
}
else
printf("不能构成三角形。\n");
}本回答被提问者采纳
相似回答