1、求X那里Y没有参与计算:temp=b*b-4*a*c;改为temp=b*b-4*a*(c-y);
2、还有每次运行到最后(除了求X时temp大于等于零的情况)不论对不对都会出现“Error!”;这是因为每个else都会与与它最近的if语句配对,因此最后一个else与倒数第二个if配对;因而在求Y,A,B,时最后那条else语句都会执行。
3、(1)建议可以用else if语句,如:if(xxx){xxxxx}
else if(xxx) {xxxxx}
else if(xxx) {xxxxx}
else {xxx}
这样就避免了上述情况。
(2)建议为了使程序更具可读性可以加些帮助理解的输出语句,如:
你的程序中 char m; char m;
cin>>m; =》 cout<<"请输入所要求的字母";
double a,b,c,x,y; cin>>m;
double a,b,c,x,y;
4、当然这只是两个建议,方法还有很多种自己可以慢慢研究。
if(m=='x')
{
int x2,temp;
cin>>a>>b>>c>>y;
temp=b*b-4*a*c;
if(temp>=0)
{
sqrt(temp);
x=(0-b-temp)/2*a;
x2=(temp-b);
cout<
else
{
cout<<"Error!";
}
}
这里输入的y没有参与计算。
if(m=='x')
{
int x2,temp;
cin>>a>>b>>c>>y;
temp=b*b-4*a*c;
if(temp>=0)
{
其中temp应该等于b*b-4*a*(c-y),y要移到方程同侧,不要漏了
程序没有错误,计算X的时候你赋值给y,y并没有参与计算,可能是你把y写错成某一字母导致运算结果和你自己运算的有差别。