用结构体求一元二次方程
程序代码:
#include "stdafx.h" #include<stdio.h> #include<math.h> struct EquationInfoStru { double a; //方程系数1 double b; //方程系数2 double c; //方程系数3 int nRootStatus; //方程根的不同情况 double dRoot1;//方程的第一个根 double dRoot2;//方程的第二个根 }; int root(struct EquationInfoStru pEquaInfo) { EquationInfoStru a; double p= pEquaInfo.b*pEquaInfo.b-4*pEquaInfo.a*pEquaInfo.c; if(p>0) { a.nRootStatus=2; a.dRoot1=(-pEquaInfo.b+sqrt(p))/(2*pEquaInfo.a); a.dRoot2=(-pEquaInfo.b-sqrt(p))/(2*pEquaInfo.a); } if(p=0) { a.nRootStatus=1; a.dRoot1=(-pEquaInfo.b)/(2*pEquaInfo.a); a.dRoot2=(-pEquaInfo.b)/(2*pEquaInfo.a); } if(p<0) { a.nRootStatus=2; a.dRoot1=(-pEquaInfo.b+sqrt(-p))/(2*pEquaInfo.a); a.dRoot2=(-pEquaInfo.b-sqrt(-p))/(2*pEquaInfo.a); } printf("共有%d个根,分别为%lf和%lf",a.nRootStatus,a.dRoot1,a.dRoot2); return 0; } int main() { EquationInfoStru pEquaInfo={0,0,0,0,0,0}; printf("输入方程的三个系数\n"); scanf("%lf%lf%lf",pEquaInfo.a,pEquaInfo.b,pEquaInfo.c); root(pEquaInfo); return 0; }用结构体求一元二次方程,怎么修改以上程序,怎么在结构体中定义的double中输出虚根,求各位大神指教