哇啦哇啦娃吖 2021-12-08 16:06 采纳率: 0%
浏览 627

求方程 ax²+bx十c=0的根,用3 个函数分别求当:b²-4ac 大于0、等于0和小于0 时的根并输出结果。从主函数输人a,6,c的值。

求方程 ax²+bx十c=0的根,用3 个函数分别求当:b²-4ac 大于0、等于0和小于0 时的根并输出结果。从主函数输人a,b,c的值。

  • 写回答

1条回答 默认 最新

  • CSDN专家-link 2021-12-08 16:07
    关注

    主函数输入a,b,c的值吧?怎么是6。小于0是输出虚数,还是返回错误?

    #include <stdio.h>
    #include <math.h>
    void fun2(float dis,float a,float b)
    {
            float x1=(-b+sqrt(dis))/(2*a);
            float x2=(-b-sqrt(dis))/(2*a);
            printf("该函数有两个不等的实根:x1=%f x2=%f\n",x1,x2);
    }
    void fun1(float a,float b)
    {
          float x = (-b)/(a*a);
          printf("该函数有两个相等的实根:x=%f\n",x);
    }
    void fun0(float dis,float a,float b)
    {
        float r =-b/(2*a);
        float i =sqrt(-dis)/(2*a);
        printf("该函数有两个不等的虚根:x1=%8.4f+%8.4fi x2=%8.4f-%8.4fi\n",r,i,r,i);
    }
    int main()
    {
        float a,b,c,dis,x1,x2;
        printf("请输入a,b,c的值: ");
        scanf("%f %f %f",&a,&b,&c);
        dis=b*b-4*a*c;
        if(dis<0)
        {
            fun0(dis,a,b);
        }
        else if(dis==0)
        {
            fun1(a,b);
        }
        else 
        {
            fun2(dis,a,b);
        }
        return 0;
    }
    
    
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 12月8日