问题及代码:
#include <stdio.h>
#include <math.h>
void shigen(float,float,float);
void denggen(float ,float );
void xugen(float ,float ,float);
int main()
{
float a,b,c,q;
void shigen(float,float,float);
void denggen(float ,float );
void xugen(float ,float ,float);
scanf("%f%f%f",&a,&b,&c);
q=b*b-4*a*c;
if(q>0) shigen(a,b,q);
else if(q==0) denggen(a,b);
else xugen(a,b,q);
return 0;
}
void shigen(float a,float b,float q)
{
float x1,x2;
x1=(-b+sqrt(q))/(2*a);
x2=(-b-sqrt(q))/(2*a);
printf("x1=%.3f x2=%.3f",x1,x2);
}
void denggen(float a,float b)
{
float x1,x2;
x1=(-b)/(2*a);
x2=x1;
printf("x1=%.3f x2=%.3f",x1,x2);
}
void xugen(float a,float b,float q)
{
float m,n;
q=-q;
m=(-b)/(2*a);
n=sqrt(q)/(2*a);
printf("x1=%.3f+%.3fi x2=%.3f-%.3fi",m,n,m,n);
}
运行结果:
展示delta小于零