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

新手求助: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条)

报告相同问题?