房天下 > 房天下问答 > 业主生活 > 其他
  • int a=1,b=3,c=3;float d=4;能正确表示a/[(b+c)d]的是

    是一道练习题,原题是这样的:已有定义语句int a=1,b=3,c=3;float d=4;以下能正确表示数学式子a/[(b+c)d]的C语言表达式是:a/(b+c)*da/(b+c)*1/da/(b+c)/da/d/(b+c)有一答案说题目中“以下能正确表示数学式子”印错了,应该是“以下不能正确表示数学式子”,答案是第一个选项。可是我想不对吧,由于类型问题,先算哪个后算哪个结果是不同的,请问一下各位高手,能告诉我标准答案吗?非常感谢!

    提问者:cuipengzr85

    发布于2011-01-25

共1个回答
  • lhrrr 丨Lv 0
    只有最后一个能获得想要的结果,其他都为0。原因是同优先级的运算时从左到右,两个整数相除结果仍是整数,而不会自动转换成浮点数,所以a/(b+c)*d=a/6*d=1/6*d=0*d=0*4.0f=0.0f;a/d/(b+c)=a/d/6=(1/4.0f)/6=0.25f/6=0.041666667f另外类似问题你自己写程序试一下就知道了
    +11 2011-01-25 举报
热门人气推荐
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。