C++求方程的平方根

#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),要记住括号里面是赋值用双等号,不是单等号。如果是单等号就是给他指定一个值而不是赋值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值