编写程序求方程ax2+bx+c=0的解,其中系数a、b、c的值要求由键盘输入
时间: 2023-05-20 21:02:27 浏览: 130
好的,我可以为您编写一个求解二次方程的程序。以下是代码:
```
#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 = x2 = -b / (2 * a);
printf("该方程有唯一解:x1 = x2 = %.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;
}
```
如果您输入的系数a、b、c满足条件,程序将会输出该二次方程的解。如果您输入的系数不满足条件,程序将会提示该方程无实数解。
相关问题
求方程ax^2+bx+c=0的根,用c++程序写一代码,要求能求方程ax^2+bx+c=0的根,设b^2-4ac>=0,其中a,b,c的值由键盘输入
好的,我可以为您提供程序代码来解决这个问题。以下是使用C语言编写的代码:
```
#include <stdio.h>
#include <math.h>
int main() {
float a, b, c, x1, x2, discriminant;
// 获取输入值
printf("请输入 a, b, c 的值:\n");
scanf("%f %f %f", &a, &b, &c);
// 计算判别式
discriminant = b * b - 4 * a * c;
// 判断方程根的情况
if (discriminant > 0) {
x1 = (-b + sqrt(discriminant)) / (2 * a);
x2 = (-b - sqrt(discriminant)) / (2 * a);
printf("该方程有两个不相等的实根:x1 = %f, x2 = %f\n", x1, x2);
} else if (discriminant == 0) {
x1 = -b / (2 * a);
printf("该方程有一个实根:x1 = %f\n", x1);
} else {
printf("该方程没有实根\n");
}
return 0;
}
```
请将上述程序保存为.c文件,然后使用一个C编译器编译并运行它。在运行时,程序将提示您输入方程的系数a、b和c的值。一旦您输入这些值,程序将计算方程的根并打印它们的值。请注意,程序只处理判别式大于或等于0的情况。
用c语言编写求一元二次方程ax2+bx+c=0的根,系数a,b,c由键盘输入
好的,下面是一个用C语言编写的程序,用于求解一元二次方程 \( ax^2 + bx + c = 0 \) 的根。系数 \( a \)、\( b \)、\( c \) 由键盘输入:
```c
#include <stdio.h>
#include <math.h>
int main() {
double a, b, c;
double discriminant, root1, root2, realPart, imaginaryPart;
// 从键盘输入系数a, b, c
printf("请输入系数a: ");
scanf("%lf", &a);
printf("请输入系数b: ");
scanf("%lf", &b);
printf("请输入系数c: ");
scanf("%lf", &c);
// 计算判别式
discriminant = b * b - 4 * a * c;
// 根据判别式的值判断根的情况
if (discriminant > 0) {
// 两个不同的实数根
root1 = (-b + sqrt(discriminant)) / (2 * a);
root2 = (-b - sqrt(discriminant)) / (2 * a);
printf("方程有两个不同的实数根: %.2lf 和 %.2lf\n", root1, root2);
} else if (discriminant == 0) {
// 一个实数根(重根)
root1 = root2 = -b / (2 * a);
printf("方程有一个实数根: %.2lf\n", root1);
} else {
// 两个复数根
realPart = -b / (2 * a);
imaginaryPart = sqrt(-discriminant) / (2 * a);
printf("方程有两个复数根: %.2lf + %.2lfi 和 %.2lf - %.2lfi\n", realPart, imaginaryPart, realPart, imaginaryPart);
}
return 0;
}
```
### 代码解释:
1. **输入系数**:程序首先提示用户输入系数 \( a \)、\( b \)、\( c \)。
2. **计算判别式**:使用公式 \(\Delta = b^2 - 4ac\) 计算判别式。
3. **判断根的情况**:
- 如果判别式大于零,则方程有两个不同的实数根。
- 如果判别式等于零,则方程有一个实数根(重根)。
- 如果判别式小于零,则方程有两个复数根。
4. **输出结果**:根据判别式的值,输出相应的根。
### 示例运行:
假设输入的系数为 \( a = 1 \)、\( b = -3 \)、\( c = 2 \),程序将输出:
```
方程有两个不同的实数根: 2.00 和 1.00
```
希望这个程序对你有帮助!如果有任何问题,请随时提问。
阅读全文
相关推荐














