m0_74346550 2023-03-02 11:38 采纳率: 50%
浏览 33
已结题

为什么这个括号时影响时不影响?


#include<math.h>
    int main(void)
    {  
      /*********Begin*********/
      
      float a,b,c;
      double m,n,d;
      printf("Please enter the coefficients a,b,c:\n");
      scanf("%f,%f,%f", &a,&b,&c);
      d = b*b-4*a*c;
      if(d<0)
      {
      printf("error!\n");
      return 0;
      }
      else
      m=(-b+sqrt(d))/2*a;
      n=(-b-sqrt(d))/2*a;
      printf("x1=%.4f, x2=%.4f\n",m,n);
      /*********End**********/ 
       return 0;
    }


img

这是c语言一元二次方程求根的问题,程序的测试集只有这一组一直不对,其他的又是对的,后面给2*a加上括号以后就对了,这是为什么捏

  • 写回答

4条回答 默认 最新

  • IT~郑小菜 2023-03-02 11:55
    关注

    在求根公式里面2a是放在分母里面的,在程序里面你没有上括号,乘和除的优先级相同,所以在程序里面会是到底先算乘法还是先算除法是不确定的,所以会出现歧义,导致达不到设计者的目的,你应该避免出现这样的情况,所以要上括号,或者分开来写
    如果觉的有帮助,望采纳,谢谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 3月10日
  • 已采纳回答 3月2日
  • 创建了问题 3月2日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。