求解一元二次方程的c语言程序
时间: 2023-05-09 16:03:51 浏览: 178
一元二次方程ax²+bx+c=0的解法有两种情况:一种是判别式Δ=b²-4ac>0,此时方程有两个不相等的实根;一种是Δ=0,此时方程有一个重根;还有一种是Δ<0,此时方程无实数解。
在c语言中,可以通过输入系数a、b、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) {
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 = x2 = -b / (2 * a);
printf("该方程有一个重根:x=%.2lf\n", x1);
} else {
printf("该方程无实数解!\n");
}
return 0;
}
需要注意的是,由于计算平方根的函数 sqrt() 是在 math.h 头文件中,所以需要在程序开头加上 #include <math.h>,并且编译时需要加上 -lm 参数,否则会报错。
阅读全文