二次方程的实数根

标题:二次方程的实数根

题目描述

编程计算并输出一元二次方程ax2+bx+c=0的两个实根,其中a、b、c的值由用户从键盘输入,假设a、b、c的值能保证方程有两个不相等的实根(即b2-4ac>0)。

输入
输入三个实数,以空格隔开。

输出

按从大到小的顺序输出两个实根,每个数据占7列、小数点后保留两位小数,不足7列右对齐

样例输入

2 6 1

样例输出

  -0.18  -2.82

代码如下

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
    double a,b,c,x1,x2,s;
    scanf("%lf %lf %lf",&a,&b,&c);
    s=sqrt(b*b-4*a*c);
    x1=(-b+s)/(2*a);
    x2=(-b-s)/(2*a);
    printf("%7.2f%7.2f",x1,x2);
    return 0;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 下面是一个求解一元二次方程实数的示例C程序: ```c #include <stdio.h> #include <math.h> int main() { double a, b, c; // 一元二次方程的系数 double delta; // 方程的判别式 double x1, x2; // 方程的实数 printf("请输入一元二次方程(ax^2+bx+c=0)的系数:\n"); printf("a = "); scanf("%lf", &a); printf("b = "); scanf("%lf", &b); printf("c = "); scanf("%lf", &c); delta = b * b - 4 * a * c; if (delta < 0) { printf("方程无实数\n"); } else if (delta == 0) { x1 = x2 = -b / (2 * a); printf("方程有一个实数:x = %.2f\n", x1); } else { x1 = (-b + sqrt(delta)) / (2 * a); x2 = (-b - sqrt(delta)) / (2 * a); printf("方程有两个实数:x1 = %.2f, x2 = %.2f\n", x1, x2); } return 0; } ``` 运行示例: ``` 请输入一元二次方程(ax^2+bx+c=0)的系数: a = 1 b = -5 c = 6 方程有两个实数:x1 = 3.00, x2 = 2.00 ``` ### 回答2: 一元二次方程的一般形式为 ax^2 + bx + c = 0,其中a、b、c为实数,且a不等于0。 要计算一元二次方程实数,可以分为以下几个步骤: 1. 计算判别式D: D = b^2 - 4ac。 2. 据判别式D的值进行分类: - 若D大于0,则方程有两个不相等的实数。 - 若D等于0,则方程有两个相等的实数。 - 若D小于0,则方程无实数。 3. 据分类结果进行具体的计算: - 若方程有两个不相等的实数,则可以通过求公式得到: x1 = (-b + √D) / (2a),x2 = (-b - √D) / (2a)。 - 若方程有两个相等的实数,则可以通过求公式得到: x1 = x2 = -b / (2a)。 需要注意的是,计算过程中可能会遇到浮点数运算误差,因此在比较浮点数时应该使用适当的精度范围。 这是一个用C语言实现计算一元二次方程实数的例子: ```c #include <stdio.h> #include <math.h> int main() { float a, b, c, D, x1, x2; printf("请输入一元二次方程的系数:\n"); scanf("%f %f %f", &a, &b, &c); D = pow(b, 2) - 4 * a * c; if (D > 0) { x1 = (-b + sqrt(D)) / (2 * a); x2 = (-b - sqrt(D)) / (2 * a); printf("方程有两个不相等的实数:x1 = %.2f, x2 = %.2f\n", x1, x2); } else if (D == 0) { x1 = x2 = -b / (2 * a); printf("方程有两个相等的实数:x1 = x2 = %.2f\n", x1); } else { printf("方程无实数。\n"); } return 0; } ``` 以上是计算一元二次方程实数的方法和一个简单的C语言实现。 ### 回答3: 计算一元二次方程实数可以通过求解方程的判别式来完成。一元二次方程通常的形式为ax^2 + bx + c = 0,其中a、b和c是已知的实数,且a不等于0。 计算步骤如下: 1. 计算判别式D = b^2 - 4ac。 2. 如果D大于0,则方程有两个不同的实数的值可以使用公式x1 = (-b + 号(D))/(2a)和x2 = (-b - 号(D))/(2a)计算得出。 3. 如果D等于0,则方程有两个相同的实数的值可以使用公式x1 = x2 = -b/(2a)计算得出。 4. 如果D小于0,则方程没有实数,只有复数解。 以求解方程2x^2 - 5x + 2 = 0为例: 1. 计算判别式D = (-5)^2 - 4*2*2 = 25 - 16 = 9。 2. 由于D大于0,即方程有两个不同的实数,可以计算得出x1 = (-(-5) + 号(9))/(2*2) = (5 + 3)/4 = 2和x2 = (-(-5) - 号(9))/(2*2) = (5 - 3)/4 = 1/2。 3. 因此,方程2x^2 - 5x + 2 = 0的实数为x1 = 2和x2 = 1/2。 总结起来,通过计算一元二次方程的判别式可以判断方程有几个实数,并通过解公式得出这些实数的数值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值