c++ 一元二次方程代码实现_详细讲解

解决一元二次方程的问题,需要直到求解方程的公式:
image.png

#include<iostream>
#include<cmath>
using namespace std;

int main() {
	/*
	解一元二次方程
	ax^2+bx+c=0;
	*/
	//首先,获取系数a,b,c的值
	cout << "请分别输入a、b、c的值:" << endl;
	double a, b, c;//这里数据类型用double,因为系数可能不是整数
	cin >> a >> b >> c;
	double dart = b * b - 4 * a * c;
	if (dart > 0) {
		cout << "方程有两个不同的根,分别是:" << endl;
		cout << "x1=" << ((-b) + sqrt(dart)) / (2 * a) << " " << "x2=" << ((-b) - sqrt(dart)) / (2 * a) << endl;
	}
	else if (dart == 0) {
		cout << "方程有两个相同的根,分别是:" << endl;
		cout << "x1=x2=" << ((-b) + sqrt(dart)) / (2 * a) << endl;
	}
	else {
		cout << "方程无根" << endl;
	}
	return 0;
}

这段代码是一个简单的C++程序,用于求解一元二次方程。以下是代码的逐行解释以及相关的数学知识:

  1. #include<iostream>:包含标准输入输出流库,用于控制台输入和输出。
  2. #include<cmath>:包含数学库,用于数学运算(如平方根)。
  3. using namespace std;:使用标准命名空间,使得后续代码可以直接使用如coutcin等名称,而不需要加std::前缀。
  4. int main() {:程序的主函数,从这里开始执行。
  5. /* ... */:这是多行注释,用于解释代码的功能。
  6. //首先,获取系数a,b,c的值:注释说明接下来要获取一元二次方程的系数a、b、c的值。
  7. cout << "请分别输入a、b、c的值:" << endl;:输出提示用户输入a、b、c的值。
  8. double a, b, c;:声明三个双精度浮点型变量,用于存储a、b、c的值。
  9. cin >> a >> b >> c;:从控制台获取用户输入的a、b、c的值。
  10. double dart = b * b - 4 * a * c;:计算判别式Δ=b^2−4acΔ = b^2 - 4acΔ=b2−4ac。
  11. if (dart > 0) { ... }:如果Δ>0Δ > 0Δ>0,则方程有两个不同的实根。
  12. cout << "x1=" << ((-b) + sqrt(dart)) / (2 * a) << " " << "x2=" << ((-b) - sqrt(dart)) / (2 * a) << endl;:输出两个不同的实根。
  13. else if (dart == 0) { ... }:如果Δ=0Δ = 0Δ=0,则方程有两个相同的实根。
  14. cout << "x1=x2=" << ((-b) + sqrt(dart)) / (2 * a) << endl;:输出一个实根(因为有两个相同的实根)。
  15. else { ... }:如果Δ<0Δ < 0Δ<0,则方程无实根。
  16. cout << "方程无根" << endl;:输出方程无实根的信息。
  17. return 0;:主函数结束,返回0表示程序正常退出。

数学知识点:
这段代码使用了求解一元二次方程的公式。
对于方程ax2+bx+c=0
其解为:

x1,2=(−b±Δ)/2a
其中Δ=b2−4ac是判别式。

根据判别式的值,我们可以知道方程的解的情况:

  • 当Δ>0时,方程有两个不同的实根;
  • 当Δ=0时,方程有两个相同的实根;
  • 当Δ<0时,方程无实根。
  • 17
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

01红C

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值