写程序,从键盘输入一 2+bx+c=0的实根。 【输入形式】a, b,c的值用空格分隔 【输出形式】输出方程的实根 【样例输入11011 【样例输出1】 not equation 【样例输入2112-3 【样例输出2】 x1=1.0 x2=-3.0 【样例输入31121 【样例车出31 x1=x2=-1.0 【样例输入41321 C] = 次方程的系数a、b、C,求一元二次方程ax
时间: 2023-05-29 17:03:13 浏览: 92
编写一个求解一元二次方程的根的程序,方程的系数由用户输入。
4星 · 用户满意度95%
解题思路:
根据一元二次方程的求根公式,判断判别式的正负性,如果大于0则有两个实根,等于0则有一个实根,小于0则无实根。根据输入的a、b、c的值计算出判别式,然后根据判别式的值输出结果即可。
参考代码:
#include <stdio.h>
#include <math.h>
int main()
{
double a, b, c, delta, x1, x2;
scanf("%lf %lf %lf", &a, &b, &c);
delta = b * b - 4 * a * c; //计算判别式
if (a == 0) //判断是否为一元一次方程
{
if (b == 0 && c == 0)
printf("x can be any number."); //无限解
else if (b == 0)
printf("no solution."); //无解
else
printf("x=%.1f", -c / b); //有唯一解
}
else //一元二次方程
{
if (delta > 0) //有两个实根
{
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("x1=%.1f x2=%.1f", x1, x2);
}
else if (delta == 0) //只有一个实根
{
x1 = -b / (2 * a);
printf("x=%.1f", x1);
}
else //无实根
printf("no solution.");
}
return 0;
}
阅读全文