- 问题描述
用 else if 结构在复数范围内求解一元二次方程的根。
#include<stdio.h>
#include<math.h> // 用到了平方根函数sqrt(),绝对值函数fabs()
int main(){
float a,b,c,x1,x2,D,real,imagepart;
printf("请依次输入一元二次方程的系数");
scanf("%f,%f,%f",&a,&b,&c);
if (a==0&&b==0){
printf("方程无解");
}
else if(a==0 && b!=0){
printf("方程有唯一解为%.3f:",-c/b);
}
else{
D=b*b-4*a*c;
if(D>0){
real = -b/(2*a);
imagepart = sqrt(fabs(D))/(2*a);
x1 = real + imagepart;
x2 = real - imagepart;
printf("方程有两个实数解%.3f,%.3f",x1,x2);
}
else if(D<0){
real = -b/(2*a);
imagepart = sqrt(fabs(D))/(2*a);
x1 = real + imagepart;
x2 = real - imagepart;
printf("方程有两个虚数解%.3f+%.3fi,%.3f+%.3fi",real,imagepart,real,imagepart );
}
else{
printf("方程有两个相等实数解%.3f",-b/(2*a));
}
}
return 0;
}
(争取每天更新一道实例题呀~~~)