//求方程a*x*x+b*x+c=0的根,用3个函数,分别求当:b*b-4*a*c大于0、等于0和小于0时的根并输出结果。
//从主函数输入a、b、c的值
cs
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
void s1(float a, float b, float c)
{
float x1, x2;
float tmp = b * b - 4 * a * c;
x1 = (-b + sqrt(tmp)) / 2 * a;
x2 = (-b - sqrt(tmp)) / 2 * a;
printf("x1=%.2f\nx2=%.2f\n", x1, x2);
}
void s2(float a, float b, float c)
{
float x1, x2;
float tmp = b * b - 4 * a * c;
x1 = (-b ) / 2 * a;
x2 = (-b ) / 2 * a;
printf("x1=%.2f\nx2=%.2f\n", x1, x2);
}
void s3(float a, float b, float c)
{
float x1, x2;
float p, q;
float tmp = b * b - 4 * a * c;
p = (-b) / 2 * a;
q = (sqrt(-tmp)) / 2 * a;
printf("x1=%.2f+%.2fi\nx2=%.2f-%.2fi\n", p, q, p, q);
}
int main()
{
float a = 0.0, b = 0.0, c = 0.0;
printf("请输入a的值:");
scanf("%f", &a);
printf("请输入b的值:");
scanf("%f", &b);
printf("请输入c的值:");
scanf("%f", &c);
if (b * b - 4 * a * c > 0)
{
s1(a, b, c);
}
else if (b * b - 4 * a * c == 0)
{
s2(a, b, c);
}
else
{
s3(a, b, c);
}
return 0;
}
输出结果:
1.当b*b-4*a*c=0时

2.当b*b-4*a*c<0时

3.当b*b-4*a*c>0时
