编写程序,从键盘输入一个二元一次方程ax2+bx+c=0的三个参数a、b、c(均为整数),求此方程的实根。如果方程有实根,则输出实根(精确到小数点后2位,较大实根在前),如果没有实根,则输出没有实根的信息
时间: 2024-10-14 10:13:41 浏览: 83
二元一次 解法 程序
这道题目需要编写一个程序,从键盘输入一个二元一次方程ax²+bx+c=0的三个参数a、b、c(均为整数),求此方程的实根。如果方程有实根,则输出实根(精确到小数点后2位,较大实根在前),如果没有实根,则输出没有实根的信息。
根据一元二次方程的求根公式,当b²-4ac>0时,方程有两个不相等的实根,公式为x1=(-b+√(b²-4ac))/(2a),x2=(-b-√(b²-4ac))/(2a);当b²-4ac=0时,方程有两个相等的实根,公式为x1=x2=-b/(2a);当b²-4ac<0时,方程无实根。
下面是一个C语言的程序示例:
```
#include <stdio.h>
#include <math.h>
int main() {
int a, b, c;
double delta, x1, x2;
printf("请输入二元一次方程ax²+bx+c=0的三个参数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("方程有两个实根,分别为%.2lf和%.2lf\n", x1, x2);
} else if (delta == 0) {
x1 = x2 = -b / (2 * a);
printf("方程有两个相等的实根,为%.2lf\n", x1);
} else {
printf("方程无实根\n");
}
return 0;
}
```
阅读全文