食色人物. 2022-01-12 12:49 采纳率: 33.3%
浏览 27
已结题

关于ac^2+bx+c=0的方程

麻烦大神帮我看一下是不是我的代码写错了
运行出来的结果总是-4.999…

img

img

  • 写回答

1条回答 默认 最新

  • Code_流苏 优质创作者: C/C++技术领域 2022-01-12 13:14
    关注

    题主思路是有的,就是可能没有考虑全面,if后直接else是不对的,因为分三种情况
    可看一下下面代码的实现:

    
    #include <stdio.h>
    #include <math.h>
    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)
        {
            printf("该函数无实根。\n");
            return 0;
        }
        else if(dis==0)
        {
            x1=x2=(-b)/(a*a);
            printf("该函数有两个相等的实根:\n");
        }
        else 
        {
            x1=(-b+sqrt(dis))/(2*a);
            x2=(-b-sqrt(dis))/(2*a);
            printf("该函数有两个不等的实根:");
        }
        printf("x1=%f x2=%f\n",x1,x2);
        return 0;
    }
    

    运行结果:

    img


    希望对题主有所帮助,望采纳!!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月20日
  • 已采纳回答 1月12日
  • 创建了问题 1月12日