第二十四讲项目3-一元二次方程全解

程序代码

#include <stdio.h>
#include <math.h>
/*
*csdn学院——2016级
*文件名称:Myfun26.c
*作者:小臣小仁
*完成日期:2016年11月8日
*问题描述:有一方程ax^2+bx+c=0,
*a,b,c的值由键盘输入,请编程序,
*打印出以下情况时方程的解。
*(1) a=0,b≠0时, 解为-c/b
*(2) a=0,b=0,c=0, 解为任意值?
*(3) a=0,b=0,c≠0, 无解
*(4) a!=0,b^2-4ac≥0, 有两个实根
*(5) a!=0,b^2-4ac≤0, 有两个虚根
*/
int main()
{
   float a,b,c,x1,x2,p;
   printf("请输ax^2+bx+c=0中的a,b,c:");
   scanf("%f %f %f",&a,&b,&c);
   p=b*b-4*a*c;
   if(a==0)
   {
       if(b==0)
       {
           if(c==0)
             printf("解为任何值!");
             else
             printf("无解!");
       }
           else
            printf("解为%.4f",-c/a);
   }
   else
   {
       if(p>=0)
       {
           x1=(b+sqrt(p))/(2*a);
           x2=(-b+sqrt(p))/(2*a);
           printf("有两个实根:x1=%.4f,x2=%.4f",x1,x2);
       }
           else
           {
               x1=-b/(2*a);
               x2=sqrt(-b)/(2*a);
               printf("有两个虚根x1=%.4f,x2=%.4f",x1,x2);
           }

   }
    return 0;
}


输出结果

知识点总结

                 这程序较以前的程序可能要复杂点,这里我用到了嵌套if语句,(多个嵌套可能在编程的时候比较烧脑——起码对于我这个初学者来讲),

                 每个if后面的一个表达式都是对应了一个判断条件,每个判断条件项目则是要输出的语句或表达式,

                 只要问题给出的判断条件满足,输出的是相应的结果。

心得体会

              我的方程可能还有诸多需要改进的地方,下面是贺老师的程序供大家参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值