用C语言编写求根公式求一元二次方程
时间: 2023-03-26 15:01:17 浏览: 92
可以使用以下代码来求解一元二次方程的根:
#include <stdio.h>
#include <math.h>
int main()
{
float a, b, c, delta, x1, x2;
printf("请输入一元二次方程的系数:\n");
scanf("%f %f %f", &a, &b, &c);
delta = b * b - 4 * a * c;
if (delta < )
{
printf("方程无实数根!\n");
}
else if (delta == )
{
x1 = x2 = -b / (2 * a);
printf("方程有唯一实数根:x1 = x2 = %.2f\n", x1);
}
else
{
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("方程有两个实数根:x1 = %.2f, x2 = %.2f\n", x1, x2);
}
return ;
}
相关问题
怎么用C语言编写求根公式求一元二次方程
### 回答1:
以下是用C语言编写求根公式求一元二次方程的代码:
```c
#include <stdio.h>
#include <math.h>
int main()
{
float a, b, c;
float delta, x1, x2;
printf("请输入一元二次方程的系数:\n");
printf("a = ");
scanf("%f", &a);
printf("b = ");
scanf("%f", &b);
printf("c = ");
scanf("%f", &c);
delta = b * b - 4 * a * c;
if(delta < 0)
{
printf("此方程无实数根!\n");
}
else if(delta == 0)
{
x1 = x2 = -b / (2 * a);
printf("此方程有两个相等的实数根:\n");
printf("x1 = x2 = %.2f\n", x1);
}
else
{
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("此方程有两个不相等的实数根:\n");
printf("x1 = %.2f\n", x1);
printf("x2 = %.2f\n", x2);
}
return 0;
}
```
使用此程序,可以输入一元二次方程的系数,然后计算出其实数根,并输出结果。其中,使用了数学库中的`sqrt()`函数来计算平方根。
### 回答2:
要用C语言编写求根公式求解一元二次方程,可以按照以下步骤进行:
1. 首先,定义三个变量a、b、c,分别表示二次方程ax^2+bx+c=0中的系数a、b、c。可以使用float类型或double类型。
2. 接下来,使用scanf函数从用户输入获取a、b、c的值。例如:
```c
printf("请输入二次方程的系数a:");
scanf("%f", &a);
printf("请输入二次方程的系数b:");
scanf("%f", &b);
printf("请输入二次方程的系数c:");
scanf("%f", &c);
```
3. 接下来,根据一元二次方程的求根公式求解方程的根。公式为:
```c
delta = b*b - 4*a*c;
```
若delta大于0,则方程有两个不相等的实根;若delta等于0,则方程有两个相等的实根;若delta小于0,则方程没有实根。
4. 根据delta的值进行条件判断,然后使用sqrt函数计算平方根并计算方程的根。例如:
```c
if (delta > 0) {
x1 = (-b + sqrt(delta)) / (2*a);
x2 = (-b - sqrt(delta)) / (2*a);
printf("方程的两个根为 x1=%.2f, x2=%.2f\n", x1, x2);
} else if (delta == 0) {
x1 = x2 = -b / (2*a);
printf("方程的两个根为 x1=x2=%.2f\n", x1);
} else {
printf("方程没有实根\n");
}
```
5. 最后,根据步骤4计算的结果,使用printf函数输出方程的根或没有实根的提示。
以上就是用C语言编写求根公式求解一元二次方程的方法。根据步骤编写完整的代码后,即可运行并调用该函数进行测试。
帮我写一个用C语言编写的求根公式求一元二次方程
### 回答1:
好的,我可以为您提供一个用C语言编写的求一元二次方程的根的程序。
```c
#include <stdio.h>
#include <math.h>
int main() {
double a, b, c, delta, x1, x2;
printf("请输入一元二次方程的系数 a, b, c: ");
scanf("%lf %lf %lf", &a, &b, &c);
delta = b * b - 4 * a * c;
if (delta >= 0) {
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("方程的根为 x1 = %lf, x2 = %lf\n", x1, x2);
} else {
printf("方程无实数根\n");
}
return 0;
}
```
您可以通过输入a、b、c的值来求解方程的根。如果方程有实数根,则程序会输出两个根x1和x2,否则会输出“方程无实数根”的提示。
### 回答2:
当我们在解一元二次方程时,可以使用求根公式来求解。求根公式如下:
对于一元二次方程 ax^2 + bx + c = 0,它的两个根可通过以下公式求得:
x1 = (-b + √(b^2 - 4ac))/(2a)
x2 = (-b - √(b^2 - 4ac))/(2a)
其中,a、b和c分别为方程中x^2、x和常数的系数。
下面是一个使用C语言编写的求根公式的例子:
```c
#include <stdio.h>
#include <math.h>
int main() {
// 输入方程的系数
float a, b, c;
printf("请输入二次方程的系数(a、b和c):");
scanf("%f %f %f", &a, &b, &c);
// 计算判别式
float discriminant = b*b - 4*a*c;
// 根据判别式的值进行判断,并计算根
if (discriminant > 0) {
float x1 = (-b + sqrt(discriminant))/(2*a);
float x2 = (-b - sqrt(discriminant))/(2*a);
printf("方程的两个根为:%f 和 %f\n", x1, x2);
} else if (discriminant == 0) {
float x = -b/(2*a);
printf("方程有一个根:%f\n", x);
} else {
printf("方程无实根。\n");
}
return 0;
}
```
在这个示例中,我们先输入二次方程的系数,然后计算判别式的值。根据判别式的值,我们可以判断方程的根的情况,并输出相应的结果。如果判别式大于0,则方程有两个不同的实根;如果判别式等于0,则方程有一个实根;如果判别式小于0,则方程无实根。
### 回答3:
以下是使用C语言编写的一元二次方程求根公式的代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
float a, b, c;
float delta;
printf("请输入一元二次方程的系数:\n");
printf("请输入a的值:");
scanf("%f", &a);
printf("请输入b的值:");
scanf("%f", &b);
printf("请输入c的值:");
scanf("%f", &c);
delta = b*b - 4*a*c;
if(delta > 0) {
float x1 = (-b + sqrt(delta)) / (2*a);
float x2 = (-b - sqrt(delta)) / (2*a);
printf("方程有两个不相等的实根:x1 = %.2f, x2 = %.2f\n", x1, x2);
}
else if(delta == 0) {
float x = -b / (2*a);
printf("方程有一个实根:x = %.2f\n", x);
}
else {
float realPart = -b / (2*a);
float imaginaryPart = sqrt(-delta) / (2*a);
printf("方程有两个共轭复数根:x1 = %.2f + %.2fi, x2 = %.2f - %.2fi\n", realPart, imaginaryPart, realPart, imaginaryPart);
}
return 0;
}
```
该代码中,首先定义了变量a、b和c来表示一元二次方程的系数。然后通过`printf`和`scanf`分别提示用户输入a、b和c的值,并将用户输入的值保存到相应的变量中。
接下来,通过计算delta的值来判断方程的根的情况。如果delta大于0,则方程有两个不相等的实根,使用公式`x = (-b ± √delta) / (2a)`来计算根的值,然后使用`printf`输出结果。如果delta等于0,则方程有一个实根,使用公式`x = -b / (2a)`来计算根的值,并输出结果。如果delta小于0,则方程有两个共轭复数根,通过计算实部和虚部的值,使用`printf`输出结果。
最后,通过`return 0`语句结束程序的执行。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)