一元二次方程根的问题
题目:有方程axx+b*x+c=0;
求出这一方程可能的根的情况;
代码及运行结果如下:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int a,b,c;
double d,m,n,x1,x2;
scanf("%d %d %d",&a,&b,&c);//a,b,c分别代表方程的二次项系数,一次项系数和常数项
if(a==0&&b==0&&c==0)
{
printf("方程解为任意值");
return 0;
}
if(a==0&&b==0&&c!=0)
{
printf("方程无解");
return 0;
}
if(a==0)
{
printf("方程的解为:%d",-c/b);
return 0;
}
d=b*b-4*a*c;
if(d>=0)
{
x1=(-b+sqrt(d))/2*a;
x2=(-b-sqrt(d))/2*a;
printf("%lf,%lf",x1,x2);
}
else
{
m=-b/2.0*a;
n=sqrt(-d)/2.0*a;
printf("%.2f+%.2fi,%.2f+%.2fi",m,n,m,n);
}
return 0;
}
代码中运用了数学中一元二次方程的基本求法,只是需要分情况考虑是不要遗漏某一种可能性。
运行结果: