#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int a,b,c,q=0,p=0;
cout<<"请输出根的系数:"<<endl;
cin>>a>>b>>c;
int e=sqrt(b*b-4*a*c);
int d=-(b/2*a);
if(a==0)
{
cout<<"此函数的根为:"<<endl;
cout<<"q="<<-c/b<<endl;
}
else
{
if(e>0)
{
p=d + e/(2*a);
q=d - e/(2*a);
cout<<"此函数有两个根为:"<<endl;
cout<<"q="<<q<<endl;
cout<<"p="<<p<<endl;
}
else if(e<0)
{
cout<<"此函数没有根"<<endl;
}
else if(e==0)
{
cout<<"此函数有一个根:"<<endl;
p=d + e/(2*a);
cout<<"p="<<p<<endl;
}
}
return 0;
}
代码比较简单在这里我讲一下作为小白的我在写此代码的过程中遇到了什么问题:
1.在写代码的时候输出结果出现了-33356577,这种情况,从理论上来讲就是对p或者q初始赋值出现了问题。仔细检查之后发现有的代码顺序错误了。
int a,b,c,q=0,p=0;
cout<<"请输出根的系数:"<<endl;
cin>>a>>b>>c;
int e=sqrt(b*b-4*a*c);
int d=-(b/2*a);
变成了:
int a,b,c,q=0,p=0;
int e=sqrt(b*b-4*a*c);
int d=-(b/2*a);
cout<<"请输出根的系数:"<<endl;
cin>>a>>b>>c;
很显然我们还没有给出abc的值的时候就对他们进行赋值。
2.if(a== 0 )与 else if(e== 0),要记住括号里面是赋值用双等号,不是单等号。如果是单等号就是给他指定一个值而不是赋值。