C语言计算一元二次方程的根,c语言求一个一元二次方程的根
求PTA一元二次方程的根
#包含stdio.h
#包含数学. h
int main()
{
双a,b,c;
scanf(%lf%lf%lf ,a,b,c);
如果(a!=0)//首先考虑当A不等于0时,即保证方程是一元二次方程。
{//a!=0
双p=b * b-4 * a * c;
If(p 0)//情况1: 0两个不相等的实根
{
双x1,x2;
x1=(-b sqrt(p))/(2 * a);
x2=(-b-sqrt(p))/(2 * a);
printf(%.2lf\n ,x1);
printf(%.2lf\n ,x2);
}
Else if(p 0)//情况2: 0有两个不相等的复数根
{
如果(b!=0)//非纯虚根
{
双实数=-b * 1.0/(2 * a);
double imag=sqrt(-p)* 1.0/(2 * a);
printf(%.2lf% .2lfi\n ,real,imag);
printf(%.2lf% .2lfi\n ,real,-imag);
}
Else//纯虚根
{
double imag=sqrt(-p)* 1.0/(2 * a);
printf(%.2lf% .2lfi\n ,0.0,imag);
printf(%.2lf% .2lfi\n ,0.0,-imag);
}
}
Else//Case 3: =0此时有根A!=0
{
printf(%.2lf\n ,-b * 1.0/(2 * a));
}
}
Else//a==0,方程化简为一维线性方程。
{
如果(b!=0)//情况三:此时有根A!=0
{
printf(%.2lf\n ,-c * 1.0/b);
}
其他
{
如果(c==0)
{
printf(零方程\ n );//场景4
}
其他
{
printf(不是方程\ n );//场景5
}
}
}
返回0;
}要注意整体思维来编程,否则很容易漏情况。
注意空格字符什么的。因为PAT太敏感了(就是不好用)。
转载请联系作者取得转载授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。