c语言的初级问题在实验一中对一元二次方程ax2+bx+c=0的求解只考虑了b2-4ac〉0的情况.如果考虑a、b、c取值分别如下表,求一元二次方程ax2+bx+2=0的根提示:若b2-4ac>0,方程有两个不同的实根; 输
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/06 07:14:31
c语言的初级问题在实验一中对一元二次方程ax2+bx+c=0的求解只考虑了b2-4ac〉0的情况.如果考虑a、b、c取值分别如下表,求一元二次方程ax2+bx+2=0的根提示:若b2-4ac>0,方程有两个不同的实根; 输
c语言的初级问题
在实验一中对一元二次方程ax2+bx+c=0的求解只考虑了b2-4ac〉0的情况.如果考虑a、b、c取值分别如下表,求一元二次方程ax2+bx+2=0的根提示:若b2-4ac>0,方程有两个不同的实根;
输入
期待的输出
说明
a
b
c
X1
X2
3
5
2
X1=
X2=
b2-4ac>0
2
4
2
X1=X2=-1.000000
b2-4ac=0
3
4
2
X1=-0.666667+0.471405i
X1=-0.666667-0.471405i
b2-4ac<0
3
0
2
X1=
X2=
b=0
0
4
2
X=-0.500000
a=0
0
0
2
Input error!
a=0,b=0
若b2-4ac<0,方程有两个复根,其实部和虚部分开计算;
若b2-4ac=0,方程有两个相等的实根;
请分别考虑: a=0、b=0和a、b均为0时的情况.
C的源程序如下:
c语言的初级问题在实验一中对一元二次方程ax2+bx+c=0的求解只考虑了b2-4ac〉0的情况.如果考虑a、b、c取值分别如下表,求一元二次方程ax2+bx+2=0的根提示:若b2-4ac>0,方程有两个不同的实根; 输
#include <stdio.h>
#include <math.h>
int main(){
double a,b,c,d,x1,x2,shibu,xubu;
\x09fflush(stdin);
\x09while(scanf("%lf%lf%lf",&a,&b,&c)!=EOF)
\x09{
\x09\x09if(a==0 && b==0 && c!=0)
\x09\x09{
\x09\x09\x09printf("Input error!\n");
\x09\x09\x09fflush(stdin);
\x09\x09\x09continue;
\x09\x09}
\x09\x09if(a==0 && b==0 && c==0)
\x09\x09{
\x09\x09\x09printf("Identities.\n");
\x09\x09\x09fflush(stdin);
\x09\x09\x09continue;
\x09\x09}
\x09\x09if(a==0 && b!=0)
\x09\x09{
\x09\x09\x09printf("X=%lf\n",-c/b);
\x09\x09\x09fflush(stdin);
\x09\x09\x09continue;
\x09\x09}
\x09\x09if(a!=0)
\x09\x09{
\x09\x09\x09d=b*b-4*a*c;
\x09\x09\x09if(d>0)
\x09\x09\x09{
\x09\x09\x09\x09x1=(-b-sqrt(d))/(2*a);
\x09\x09\x09\x09x2=(-b+sqrt(d))/(2*a);
\x09\x09\x09\x09printf("X1=%lf\nX2=%lf\n",x1,x2);
\x09\x09\x09\x09fflush(stdin);
\x09\x09\x09\x09continue;
\x09\x09\x09}
\x09\x09\x09if(d==0)
\x09\x09\x09{
\x09\x09\x09\x09printf("X1=X2=%lf\n",-b/(2*a));
\x09\x09\x09\x09fflush(stdin);
\x09\x09\x09\x09continue;
\x09\x09\x09}
\x09\x09\x09if(d<0)
\x09\x09\x09{
\x09\x09\x09\x09shibu=-b/(2*a);
\x09\x09\x09\x09xubu=sqrt(-d)/(2*a);
\x09\x09\x09\x09printf("X1=%lf+%lfi\nX2=%lf-%lfi\n",shibu,xubu,shibu,xubu);
\x09\x09\x09\x09fflush(stdin);
\x09\x09\x09\x09continue;
\x09\x09\x09}
\x09\x09}
\x09}
\x09return 0;
}