用三个函数分别求当:b^-4ac大于0、等于0和小于0时的根并输出结果。从主函数输入a,b,c的值
C语言程序:
# include <stdio.h>
# include <math.h>
float x1, x2, x, d, s, t; //定义全局变量
int main()
{
float a, b, c;
/* 函数声明 */
void da_yu(float a, float b);
void deng_yu(float a, float b);
void xiao_yu(float a, float b);
printf("请您输入所求二次方程的相应系数a, b, c:\n(系数之间以空格作为分隔)\n");
scanf("%f %f %f", &a, &b, &c);
d = (b*b - 4*a*c);
if(d > 0)
{
da_yu(a, b);
printf("该方程有两个根,分别为:\nx1 = %f, x2 = %f\n", x1, x2);
}
else if(d == 0)
{
deng_yu(a, b);
printf("该方程有两个重根,为:\nx1 = x2 = %f\n", x);
}
else
{
xiao_yu(a, b);
printf("该方程有两个复根,分别为:\nx1 = %f + %fi, x2 = %f - %fi\n", s, t, s, t);
}
return 0;
}
void da_yu(float a, float b)
{
x1 = (-b + sqrt(d)) / (2*a);
x2 = (-b - sqrt(d)) / (2*a);
}
void deng_yu(float a, float b)
{
x = (-b) / (2*a);
}
void xiao_yu(float a, float b)
{
s = -b / (2*a);
t = sqrt(-d) / (2*a);
}
运行结果: