弄不清为什么这个代码不对

img


我想让i的值是y的值循环相加,但是算出来的结果不是,这个循环语句中哪里出错了吗?

img

while( x < 3 ) //这里明显和你的逻辑不搭

  1. 建议你取有意义的变量名, 方便看码, 养成习惯。
  2. 分析题,找到它的规律, 来解决问题。
    计算 手上的瓶数 = ( 新换得数 ) + ( 原剩空瓶 )
    uiOnhand = ( uiOnhand / 3 ) + ( uiOnhand % 3 );
    循环 当空瓶数 > 3
  3. 把 3 变成 参数, 就可以应付不同空瓶兑换的情况。

Sample code:

unsigned int uiMaxBottle(unsigned int uiNumber)
{
    unsigned int uiOnhand= uiNumber;    
    do {
        uiNumber += uiOnhand/3; 
        uiOnhand  = ( uiOnhand/3 ) + ( uiOnhand % 3 ); 
    } while( uiOnhand > 3);   
    return uiNumber; 
}

如果编译不报错,就要看题目内容才知道问题