Zoe_yuyang 2018-12-16 09:03 采纳率: 50%
浏览 791
已采纳

新手求助:h/=2 与 h*=1/2 有什么区别

请问 h/=2 与 h=*1/2 有什么区别?

#include<iostream>
using namespace std;
int main()
{
    double h,sum;
    int i;

    cin>>h;
    sum=h;
    for(i=1;i<=9;i++)
    {
        h/=2;//这里原来写的是h*=1/2,但运行结果不同,求解释
        sum+=h*2;
    }
    cout<<sum<<endl
    cout<<h/2<<endl;
    return 0;
}

  • 写回答

2条回答 默认 最新

  • threenewbee 2018-12-16 11:41
    关注

    C语言里,1/2因为除数被除数都是整数,所以是整除,结果是0
    所以
    h*=1/2
    是h = h * 0
    无论h是多少,这一行都相当于是h = 0
    而,h/=2
    是h = h / 2
    如果 h是偶数,那么h运算以后是原来的值的一半
    如果h是奇数,那么结果相当于(h - 1) / 2

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

报告相同问题?

悬赏问题

  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥20 Python安装cvxpy库出问题
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥15 python天天向上类似问题,但没有清零
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题