
为什么不能算出要的答案,而是0.0000的结果。感觉写的也没错,为什么运行结果不是答案呢
将第8行放到第12行后面一行即可,即从输入获取三角形三条边的长度后,再计算d的值,如果先计算d的值,则三条边的长度是初始值0,计算出的d也会为0。
修改如下:
#include <stdio.h>
#include <math.h>
int main(void){
double a=0;
double b=0;
double c=0;
double d;
printf("请输入三角形三条边边长:");
scanf("%lf %lf %lf",&a,&b,&c);
// 将计算d的值这行放到获取输入之后即可,
// 如果先计算,则三条边长都是初始值0,则计算出的d的值肯定也是0
// 然后计算出的面积也会为0
d=(a+b+c)/2;
printf("三角形的面积为:%f\n",sqrt(d*(d-a)*(d-b)*(d-c)));
return 0;
}
