作业帮 > 综合 > 作业

输入三角形的3条边a,b,c,如果能构成一个三角形,则输出面积,否则输出Error.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/06/01 22:55:06
输入三角形的3条边a,b,c,如果能构成一个三角形,则输出面积,否则输出Error.
#include
#include
int main()
{
\x09double a,b,c,p,s;
\x09scanf("%lf%lf%lf",&a,&b,&c);
\x09if(a+b>c,b+c>a,c+a>b)
{p=(a+b+c)/2,
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("%.2f",s);}
\x09else
\x09printf("error");
\x09return 0;
}为什么错了,比如我输入1 3 4输出为什么不是errow
虽然我N年不玩语言了,但明显问题出在下面之上:
if(a+b>c,b+c>a,c+a>b)
这句中a+b>c,b+c>a,c+a>b三个逻辑表达式关系应该是a+b>c与b+c>a与c+a>b
而逗号运算符就是取最后一个式子的值,也就是if(c+a>b),结果当然出错.
要不你改成if(a+b>c&&b+c>a&&c+a>b)试试