c语言的初级问题在实验一中对一元二次方程ax2+bx+c=0的求解只考虑了b2-4ac〉0的情况.如果考虑a、b、c取值
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/08 14:04:15
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的源程序如下:
#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;
}
#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;
}
c语言的初级问题在实验一中对一元二次方程ax2+bx+c=0的求解只考虑了b2-4ac〉0的情况.如果考虑a、b、c取值
已知一元二次方程ax2+bx+c+0在b2-4ac≥0的情况下有两个实数解(-b±√b2-4ac)/2a
已知b2-4ac是一元二次方程ax2+bx+c=0(a≠0)的一个实数根,则ab的取值范围为( )
求一元二次方程ax2+bx+c=0的解.a,b,c为任意实数.c语言编程
16、 关于x的一元二次方程ax2+bx+c=0(a,b,c∈C)有说法:①b2=4ac时,方程有两个等根; ②b2-4
vb编写一个程序,根据输入的系数求一元二次方程ax2+bx+c=0的根,要求考虑实根、虚根等情况,
已知x1,x2是一元二次方程ax2+bx+c=0的两个根(b2-4ac≥0)
2、 编程求一元二次方程ax2+bx+c=0的实数根x1,x2,a,b,c的值由键盘输入,设b2-4ac>0.输入输出参
用c语言编写:求方程ax2+bx+c=0的实数根.a,b,c由键盘输入,a≠0且b2-4ac>0;谢谢!
设一元二次方程ax2+bx+c=0(a<0)的根的判别式△=b2-4ac=0,则不等式ax2+bx+c≥0的解集为 __
在一元二次方程ax2+bx+c=0(a≠0)中,N=b2-4ac,M=(2ax+b)2,则M和N的关系是( )
用VB设计一个求解一元二次方程Ax2+Bx+C=0的程序(A、B、C的值是任意的).