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 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)