编写C语言程序,从键盘输入一个二元一次方程ax2+bx+c=0的三个参数a、b、c(均为整数),求此方程的实根。如果方程有实根,则输出实根(精确到小数点后2位,较大实根在前),如果没有实根,则输出没有实根的信息
时间: 2023-08-31 10:31:47 浏览: 106
### 回答1:
。#include <stdio.h>
#include <math.h>
int main() {
int a, b, c;
double delta, x1, x2;
printf("请输入二元一次方程ax^2 + bx + c = 0的三个参数a、b、c:\n");
scanf("%d%d%d", &a, &b, &c);
delta = b * b - 4 * a * c; // 计算方程的判别式
if (delta < 0) {
printf("此方程没有实根!\n");
} else if (delta == 0) {
x1 = x2 = -b / (2.0 * a);
printf("此方程有唯一实根:%.2f\n", x1);
} else {
x1 = (-b + sqrt(delta)) / (2.0 * a);
x2 = (-b - sqrt(delta)) / (2.0 * a);
printf("此方程有两个实根:%.2f,%.2f\n", x1, x2);
}
return 0;
}
### 回答2:
下面是一个解决这个问题的C语言程序:
```c
#include <stdio.h>
#include <math.h>
int main() {
int a, b, c;
double delta, x1, x2;
// 从键盘输入参数
printf("输入方程的参数a、b、c:");
scanf("%d%d%d", &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=%.2lf, x2=%.2lf\n", x1, x2);
} else if (delta == 0) {
// 有一个实根
x1 = -b / (2 * a);
printf("方程的实根为:x=%.2lf\n", x1);
} else {
// 没有实根
printf("方程没有实根\n");
}
return 0;
}
```
程序首先从键盘输入方程的参数a、b、c,然后根据判别式delta的值判断方程的根的情况。如果delta大于0,则方程有两个实根,通过公式求出这两个实根;如果delta等于0,则方程有一个实根,通过公式求出该实根;如果delta小于0,则方程没有实根。最后,程序将实根输出到屏幕上。
### 回答3:
以下是一个用C语言编写的解二元一次方程的程序:
```c
#include <stdio.h>
#include <math.h>
int main() {
int a, b, c;
double discriminant, root1, root2;
printf("请输入二元一次方程的参数a、b、c:\n");
scanf("%d%d%d", &a, &b, &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 {
printf("没有实根\n");
}
return 0;
}
```
程序中,首先从键盘输入二元一次方程的三个参数a、b、c,然后计算方程的判别式(即b²-4ac的值)。如果判别式大于0,则输出两个实根;如果判别式等于0,则输出一个实根;如果判别式小于0,则输出无实根的信息。输出时,使用 `%.2lf` 格式控制输出结果保留两位小数。
阅读全文