#include <iostream>
#include <cmath>
using namespace std;
int main()
{
float x1,x2,deta,a,b,c;
cout<<"ax*x+bx+c=0"<<endl;
cout<<"请输入a,b,c的值\n";
cin>>a>>b>>c;
if (a!=0.)
deta=sqrt(b*b-4.*a*c);
if (deta>0.);
{
x1=(-b+deta)/(2.*a);
x2=(-b-deta)/(2.*a);
cout<<"x1="<<"\t"<<x1<<endl;
cout<<"x2="<<"\t"<<x2<<endl;
}
else
if (deta==0;)
{
x1=x2=-b/(2*a);
cout<<"x1=x2="<<"\t"<<x1<<endl;
}
else
cout<<"无解"<<endl;
else
if (b!=0;)
{
x1=x2=-c/b;
cout<<"x1=x2="<<x1<<endl;
}
else
cout<<"无解"<<endl;
}
请告诉我哪里错了谢谢
修改后的代码,你可以和原来的对照一下,就清楚了
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
float x1,x2,deta,a,b,c,temp;
cout<<"ax*x+bx+c=0"<<endl;
cout<<"请输入a,b,c的值\n";
cin>>a>>b>>c;
if (a!=0){
temp=b*b-4*a*c;
if (temp>0)
{
deta=sqrt(temp);
x1=(-b+deta)/(2.*a);
x2=(-b-deta)/(2.*a);
cout<<"x1="<<"\t"<<x1<<endl;
cout<<"x2="<<"\t"<<x2<<endl;
}
else
if (temp==0)
{
x1=x2=-b/(2*a);
cout<<"x1=x2="<<"\t"<<x1<<endl;
}
else
cout<<"无解"<<endl;
}
else{
if (b!=0)
{
x1=x2=-c/b;
cout<<"x1=x2="<<x1<<endl;
}
else
cout<<"无解"<<endl;
}
}
你代码主要是错在输入时的输入法,不能使用中文输入法输入 ,在这里特别是:括号 ()与() 时不一样的!
还有你的算法中有一些重复,我把多余部分做了一些修改,简化了一下,看看吧:
#include <iostream>
#include <cmath>
using namespace std;
void main()
{
float x1,x2,deta,a,b,c;
cout<<"ax*x+bx+c=0"<<endl;
cout<<"请输入a,b,c的值\n";
cin>>a>>b>>c;
if(a!=0) //括号要用英文输入法输入,同时去掉括号),前的小数点,以下的同样错误,称 括号问题;
{
deta=sqrt(b*b-4*a*c); // 分号也在英文输入法,输入,不能用中文输入法!
if (deta>=0) //同样错误,括号问题
{
x1=(-b+deta)/(2*a);
x2=(-b-deta)/(2*a);
cout<<"x1="<<"\t"<<x1<<endl;
cout<<"x2="<<"\t"<<x2<<endl;
}
else
cout<<"无解"<<endl;
}
else //括号问题,同时去掉分号
{
x1=x2=-c/b;
cout<<"x1=x2="<<x1<<endl;
}
}
演示如下:
^_^
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息