c语言 三角形三边求面积
发布网友
发布时间:2022-05-17 01:31
我来回答
共5个回答
热心网友
时间:2022-05-19 03:05
首先,输入三角形的三边长的问题。你没有判定输入的数是否可以构成三角形。
还有就是定义变量应该用浮点型变量,而不是整型变量,毕竟三角形的面积不可能全部是整型吧。
这个是我刚写的,这个也没有判定输入的数是否可以构成三角形。
你自己尝试再看看能否改编成功呢?
#include<stdio.h>
#include<math.h>
void main()
{
float a,b,c,s,area;
scanf("%f,%f,%f",&a,&b,&c);
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2f\n",a,b,c,s);
printf("area=%7.2f\n",area);
}
热心网友
时间:2022-05-19 03:06
代码没错,可能是你少了判别条件,如
a+b>c a+c>b b+c>a 即三角形的任两边之和必大于第三边。
哦,忘了面积不可能都是整数。呵呵。。。。。
热心网友
时间:2022-05-19 03:06
t;conio.h>
#include<stdio.h>
#include<math.h>
int main()
{
float a,b,c;
float area,s;
printf("请输入三角行的三边:");
scanf("%f %f %f",&a,&b,&c);
if(a>0&&b>0&&c>0)
{
if((a+b>c)&&(a+c>b)&&(b+c>a))
{
printf("\n这三边能组成三角形\n");
s=(a+b+c)/2.0;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("三角形的面积为: %f\n",area);
if(((a*a+b*b)==c*c)||((a*a+c*c)==b*b)||((c*c+b*b)==a*a))
printf("这是直接三角形\n");
else if((a==b)&&(a==c)&&(b==c))
printf("这是等边三角形\n");
else if((a==b)||(a==c)||(b==c))
printf("这是等腰三角形\n");
else printf("这是普通三角形\n");
}
else
printf("\n这三边不能组成三角形\n");
}
else
printf("\n输入错误!");
getch();
return 1;
}
热心网友
时间:2022-05-19 03:07
用海伦-秦九韶公式可算出
若已知三角形3边长分别为a
b
c
令p=1/2(a+b+c)
那么三角形面积s=根号内(p(p-a)(p-b)(p-c))
将三边长代入即可,用余弦定理和一些三角函数公式也可计算,只是麻烦了点
用三角函数定理
热心网友
时间:2022-05-19 03:07
int改float %d 改%f
因为边长和的一半可能有0.5 而面积大多有小数
差别三角形是否存在可以这样做
area=s*(s-a)*(s-b)*(s-c);
if (area>0)area=sqrt(area);
area==0是三条线在同一直线上 area<0则无法相交