数据类型由float改为double后 会有什么改变 为什么有些程序运行结果
#include<stdio.h>#include<math.h>
int main(void)
{
float a,b,c,disc,x1,x2,realpart,imagpart;
scanf("%f,%f,%f",&a,&b,&c);
printf("The equation ");
if(fabs(a)<1e-10)
printf("is not a quadratic\n");
else
{
disc=b*b-4*a*c;
if(fabs(disc)<1e-10)
printf("have two equal roots:%8.4f\n",-b/2/a);
else
if(disc>0)
{
x1=(-b+sqrt(disc))/2/a;
x2=(-b-sqrt(disc))/2/a;
printf("has distinct real roots:%8.4f and %8.4f\n",x1,x2);
}
else
{
realpart=-b/2/a;
imagpart=sqrt(-disc)/2/a;
printf("has complex roots:\n");
printf("%8.4f+%8.4fi\n",realpart,imagpart);
printf("%8.4f-%8.4fi\n",realpart,imagpart);
}
}
}
譬如这个求一元二次方程的根的问题 如果把数据类型都改为double结果就会出问题
求解答啊
谢谢