用c语言求方程ax 2 +bx+c=0的根,要求: (1)方程的系数a,b,c由键盘输入 (2)a,b,c的值任意,但a,b不能同时为零 (3)考虑方程的各种可能情况:两个不同实根、两个相等的实根、复数根;以及a等于零的情况等。
时间: 2023-05-26 13:07:45 浏览: 77
已知二元一次方程ax²+bx+c=0(a≠0),编程实现求解方程的根。(分三种情况考虑)
C语言实现如下:
#include <stdio.h>
#include <math.h>
int main()
{
float a, b, c, delta, x1, x2, realPart, imagPart;
printf("请输入方程的系数a、b、c:\n");
scanf("%f%f%f", &a, &b, &c);
if (a == 0)
{
if (b == 0)
printf("方程无意义!\n");
else
printf("方程为一次方程,解为:%f\n", -c / b);
}
else
{
delta = b * b - 4 * a * c;
if (delta > 0)
{
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("方程有两个不同实根:x1=%f,x2=%f\n", x1, x2);
}
else if (delta == 0)
{
x1 = x2 = -b / (2 * a);
printf("方程有两个相等的实根:x1=x2=%f\n", x1);
}
else
{
realPart = -b / (2 * a);
imagPart = sqrt(-delta) / (2 * a);
printf("方程有两个虚根:x1=%f+%fi,x2=%f-%fi\n", realPart, imagPart, realPart, imagPart);
}
}
return 0;
}
运行结果如下:
请输入方程的系数a、b、c:
1 -5 6
方程有两个不同实根:x1=3.000000,x2=2.000000
请输入方程的系数a、b、c:
1 -4 4
方程有两个相等的实根:x1=x2=2.000000
请输入方程的系数a、b、c:
1 2 10
方程有两个虚根:x1=-1.000000+3.000000i,x2=-1.000000-3.000000i
请输入方程的系数a、b、c:
0 0 10
方程无意义!
阅读全文