困惑啊~求解决~求解释
基础题:编写函数,求1元2次方程ax^2+bx+c = 0的实根 为什么我的求dalt那句不正常?
#include <stdio.h>
#include <math.h>
int quadratic_equation(float a, float b, float c, float* x1 , float* x2)
{
float dalt = 0;
if(0 == a)
{
*x1 = *x2 =(-c)/b ;
return 1 ;
}
else
{
printf("dalt1:%lf",dalt);
dalt = b*b-4*a*c;
printf("dalt2:%lf",dalt);
if(dalt >= 0)
{
*x1 = ((-b)+sqrt(dalt))/(2*a);
*x2 = ((-b)-sqrt(dalt))/(2*a);
return 1;
}
else
{
return 0;
}
}
}
int main()
{
int flage = 0;
float x1 = 0;
float x2 = 0;
float a = 0;
float b = 0;
float c = 0;
printf("input a:");
scanf("%d",&a);
printf("input b:");
scanf("%d",&b);
printf("input c:");
scanf("%d",&c);
flage = quadratic_equation(a,b,c,&x1,&x2);
if( 1 == flage)
{
printf("x1=%.3f,x2=%.3f\n",x1,x2);
}
else
{
printf("no real root;\n");
}
return 0;
}
printf("input a:");
scanf("%f",&a);
printf("input b:");
scanf("%f",&b);
printf("input c:");
scanf("%f",&c);