编程实现:求二元一次方程式ax2 +bx+c=0的根。分别考虑: ①有两个不等的实根; ②有两个相等的实根; ③无实数根,有两个虚数根。
时间: 2023-05-20 18:02:34 浏览: 746
对于二元一次方程式ax2 bx c=0,可以使用以下公式求解:
①有两个不等的实根:x1 = (-b + sqrt(b^2 - 4ac)) / 2a,x2 = (-b - sqrt(b^2 - 4ac)) / 2a
②有两个相等的实根:x1 = x2 = -b / 2a
③无实数根,有两个虚数根:x1 = (-b + sqrt(4ac - b^2)i) / 2a,x2 = (-b - sqrt(4ac - b^2)i) / 2a
其中,sqrt表示求平方根,i表示虚数单位。
相关问题
用C语言计算二元一次方程ax²+bx+c=0(a≠0)的根并且分三种情况考虑。
以下是用C语言计算二元一次方程ax²+bx+c=0(a≠0)的根并且分三种情况考虑的代码:
```c
#include <stdio.h>
#include <math.h>
int main()
{
double a, b, c, delta, x1, x2;
printf("请输入二元一次方程的系数a, b, c:\n");
scanf("%lf %lf %lf", &a, &b, &c);
delta = b * b - 4 * a * c;
if (delta < 0) {
printf("方程无实数解!\n");
}
else if (delta == 0) {
x1 = -b / (2 * a);
printf("方程有唯一解x=%.2lf\n", x1);
}
else {
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("方程有两个实数解:x1=%.2lf, x2=%.2lf\n", x1, x2);
}
return 0;
}
```
代码解释:
1. 首先,我们定义了四个变量:a、b、c和delta。其中,a、b、c分别表示方程的三个系数,delta表示判别式。
2. 然后,通过scanf函数从控制台输入方程的系数a、b、c。
3. 根据判别式delta的值,我们分别处理三种情况:
* 当delta小于0时,方程无实数解,因此输出“方程无实数解!”。
* 当delta等于0时,方程有唯一解x=-b/2a,因此计算出x1的值,并输出“方程有唯一解x=XXX”。
* 当delta大于0时,方程有两个实数解,因此计算出x1和x2的值,并输出“方程有两个实数解:x1=XXX, x2=XXX”。
4. 最后,返回0表示程序运行成功。
注意:在计算平方根时,需要使用math.h库中的sqrt函数,因此需要在程序开头加上#include <math.h>。同时,我们采用了double类型来存储变量,以保证精度。
编程实现求ax2+bx+c二元一次方程的解,利用求根公式,通过if else 语句来实现。其中abc为double类型
好的,我可以为您提供代码。以下是使用if else语句实现求解ax2+bx+c=0二元一次方程的根的示例代码:
```c++
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double a, b, c, discriminant, root1, root2;
cout << "请输入二元一次方程的系数 a, b 和 c:" << endl;
cin >> a >> b >> c;
discriminant = b * b - 4 * a * c;
if (discriminant > 0) {
root1 = (-b + sqrt(discriminant)) / (2 * a);
root2 = (-b - sqrt(discriminant)) / (2 * a);
cout << "方程的两个实根分别为:" << root1 << " 和 " << root2 << endl;
}
else if (discriminant == 0) {
root1 = root2 = -b / (2 * a);
cout << "方程的两个实根相等,值为:" << root1 << endl;
}
else {
cout << "方程无实根!" << endl;
}
return 0;
}
```
在该代码中,我们首先通过`cin`语句从控制台获取用户输入的系数a、b、c,然后根据求根公式计算出判别式的值。接着,我们使用if else语句根据判别式的值来判断方程的根的情况,并输出相应的结果。
需要注意的是,当判别式的值小于0时,方程无实根。