为什么我输入 3 4 5 会显示-1.#IND00
应该如何修改?
#include
#include
#define p ((a+b+c)/2)
#define q (p*(p-a)*(p-b)*(p-c))
float S(float a,float b,float c)
{
float s=0;
s=sqrt(q);
return s;
}
int main()
{
float a,b,c;
scanf("%lf %lf %lf",&a,&b,&c);
printf("%lf\n",S(a,b,c));
return 0;
}
见注释,供参考:
#include<stdio.h>
#include<math.h>
#define p (((a)+(b)+(c))/2.0) //修改
#define q ((p)*((p)-a)*((p)-b)*((p)-c))//修改
float S(float a,float b,float c)
{
float s=0;
s=sqrt(q);
return s;
}
int main()
{
float a,b,c;
scanf("%f %f %f",&a,&b,&c); //修改
//scanf("%lf %lf %lf",&a,&b,&c);
printf("%f\n",S(a,b,c)); //修改
// printf("%lf\n",S(a,b,c));
return 0;
}