函数:求方程ax2+bx+c=0的根,用3个函数分别求当b2-4ac大于0,等于0,和小于0时的根并输出结果。从主函数中输入a,b,c。

#include<iostream>
using namespace std;
#include<cmath>
void fun1(int a, int b, int c, int s)
{
	cout << (-b + sqrt(s)) / 2 * a<<","<< (-b - sqrt(s)) / 2 * a;
}
void fun2(int a, int b, int c, int s)
{
	cout << (-b + sqrt(s)) / 2 * a << "," << (-b + sqrt(s)) / 2 * a;
}
void fun3(int a,int b,int c,int s)
{
	cout << "b2-4ac<0,方程无解" << endl;
}
int main()
{
	int a, b, c;
	int s;
	cout << "请输入a,b,c:" << endl;
	cin >> a >> b >> c;
	s = b * b - 4 * a * c;
	if (s > 0)
		fun1(a,b,c,s);
	else if (s == 0)
		fun2(a,b,c,s);
	else
		fun3(a,b,c,s);
	return 0;
}

当$b^2-4ac>0$方程$ax^2+bx+c=0$有两个不相等的实数。 我们可以使用判别式$D=b^2-4ac$来判断方程的情况。 当$D>0$方程有两个不相等的实数。 我们可以定义一个函数方程: ```python def find_roots(a, b, c): D = b**2 - 4*a*c if D > 0: root1 = (-b + D**0.5) / (2*a) root2 = (-b - D**0.5) / (2*a) return root1, root2 ``` 当$b^2-4ac=0$方程$ax^2+bx+c=0$有两个相等的实数。 我们可以使用判别式$D=b^2-4ac$来判断方程的情况。 当$D=0$方程有两个相等的实数。 我们可以继续完善上面的函数方程: ```python def find_roots(a, b, c): D = b**2 - 4*a*c if D > 0: root1 = (-b + D**0.5) / (2*a) root2 = (-b - D**0.5) / (2*a) return root1, root2 elif D == 0: root = -b / (2*a) return root, root ``` 当$b^2-4ac<0$方程$ax^2+bx+c=0$没有实数,而是有两个共轭的复数。 我们可以使用判别式$D=b^2-4ac$来判断方程的情况。 当$D<0$方程没有实数,而是有两个共轭的复数。 我们可以继续完善上面的函数方程: ```python def find_roots(a, b, c): D = b**2 - 4*a*c if D > 0: root1 = (-b + D**0.5) / (2*a) root2 = (-b - D**0.5) / (2*a) return root1, root2 elif D == 0: root = -b / (2*a) return root, root else: real_part = -b / (2*a) img_part = abs(D)**0.5 / (2*a) root1 = complex(real_part, img_part) root2 = complex(real_part, -img_part) return root1, root2 ``` 这样,我们就实现了据给定方程系数$a$、$b$、$c$来方程函数。对于不同的判别式情况,函数会返回不同的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值