#include<stdio.h>
#include<math.h>
int main()
{
double a,b,c,s,area;
scanf("%lf%lf%lf",&a,&b,&c);
s=(a+b+c)/2.0;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%lf\n",area);
return 0;
}
代码基本没有问题,只是没有输入校验而已。关键运行的时候你怎么输入的。
这是三角形面积的计算。
你的代码没有对输入进行正确性检验,没有初始化a、b、c的值,所以要求输入的必须满足下面三个条件否则结果将是错误的:
输入三个数
空格或回车分割
满足三角形的构成条件:任意两边之和大于第三边。
--------------------
比如下面的输入,只输入一个数字而输入两组字母,结果就是INDO
温馨提示:答案为网友推荐,仅供参考
第1个回答 2021-02-02
#IND00 表示浮点数溢出, 例如 分母为 0。(IN 是英语 无限的意思,D 是 double 型浮点数)。
如果输入的数合适,就没问题,例如 拍入 3 4 5, 这是直角三角形,面积等于 6。
你的程序计算三角形面积。程序中应加入 判断三角形成立的判别式。例如两边之和大于等于第三边,或 s > 0, 负数不能开平方。避免输入的数据不合适引起的溢出。
如果输入的数合适,就没问题,例如 拍入 3 4 5, 这是直角三角形,面积等于 6。
你的程序计算三角形面积。程序中应加入 判断三角形成立的判别式。例如两边之和大于等于第三边,或 s > 0, 负数不能开平方。避免输入的数据不合适引起的溢出。