实例三:讨论一元二次方程的根

实例三:讨论一元二次方程的根——根据系数计算判别式

问题描述:

讨论一元二次方程的根

#include <stdio.h>
#include <math.h>
int main(void)
{
    float a, b, c, x1, x2, realpart, imagepart, p;
    printf("请输入一元二次方程的系数a,b,c的值:");
    scanf("%f,%f,%f",&a,&b,&c);
    if(a == 0 && b == 0)
        printf("方程无解!\n");
    else if(a==0 && b!=0)
        printf("方程只有一个解:%.3f\n",-c/b);
    else
    {
        p = b * b - 4 * a * c;
        realpart = -b / (2 * a);
        imagepart = sqrt(fabs(p)) / (2 * a);
        if(p<0)
        {
            printf("方程有虚数解:");
            printf("%.3f+%3fi",realpart,imagepart);
            printf("%.3f+%.3fi\n",realpart,imagepart);
        }
        else if(p>0)
        {
            x1 = realpart + imagepart;
            x2 = realpart - imagepart;
            printf("方程有俩个实数解:");
            printf("%.3f and %.3f\n",x1,x2);
        }
        else
            printf("方程只有一个实数解:%.3f\n",realpart);
    }
    return 0;
}

心得:

  • 判断一元二次方程的解的情况,一定要回想起中学学过的韦达定理,根与系数的关系,来作为条件判断解的情况,也要考虑周全,对于中学时代的扩展———非实根也要有在程序中扩展体现到。

拓展:

  • 实际上就是条件判断,话不多说:if()条件注意灵活性,从 初始化 测试 更新 三个语言表达式中找到灵活性,还要注意一个运算符:” ,“ 。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值